0

私はパンダのデータフレームを使用してクリーンアップし、後でマトリックスとして読み込む500以上のファイルを持っています。私は今私のファイル全体の複数の変数から欠けている行のデータを削除したいと思う。各変数はその形状がかなり長いです。たとえば、tcとwspdは形状(84479,558)、圧力は形状(558)です。私は以前の例を試してみましたが、同じ形状の1次元配列では過去に働いていましたが、2次元配列では動作しなくなりました。複数の変数のデータ行を削除する

bad=[] 
    for i in range(len(p)): 
     if p[i]==-9999 or tc[i]==-9999: 
      bad.append(i) 
    p=numpy.delete(p, bad) 
    tc=numpy.delete(tc, bad) 

代わりに次のコードを使用してみましたが、成功しませんでした(残念ながら)。

import numpy as n 
import pandas as pd 

wspd=pd.read_pickle('/home/wspd').as_matrix() 
tc=pd.read_pickle('/home/tc').as_matrix() 

press=n.load('/home/file1.npz') 
p=press['press'] 
names=press['names'] 

length=n.arange(0,84479) 
for i in range(len(names[0])): #using the first one as a trial to run faster 
    print i #used later to see how far we have come in the 558 files 
    bad=[] 
    for j in range(len(length)): 
     if (wspd[j,i]==n.nan or tc[j,i]==n.nan): 
      bad.append(j) 
     print bad 

そこから私は私が私の最初のforloop内から削除しています次元のインデックスを除いて、以前に行っていたとして、失われたデータを削除することを計画します。

 new_tc=n.delete(tc[j,:], bad) 

残念ながら、これは機能しませんでした。私はまた、動作していない配列をマスキングすることも試みました。私はデータを削除する必要が

理由は、私の次のライブラリがNaN値を理解しないで、それはなど

、厳密に整数を必要と浮かぶ、誰もがいずれかを持っている場合、私は、データの行を削除するための新しい方法に開いていますガイダンス。私は大いに感謝します。

答えて

0

私はパンダのデータフレームとして、あなたの2次元配列をロードして、NULL値を含むすべての行を削除するにはdropna機能を使用することになり

​​

pandas.DataFrame.dropnaのドキュメントはhere

です
関連する問題