私は2つのパンダのデータフレームdf1 & df2の両方から削除したい行インデックスのリストto_deleteを持っています。どちらも500行あります。 to_deleteには50個のエントリがあります。Pandas Dataframeから複数の行を削除しようとしましたが、それ以上の行が削除されています
df1.drop(df1.index[to_delete], inplace=True)
df2.drop(df2.index[to_delete], inplace=True)
をしかし、これはDF1とDF2は250行ごとを持つことになる: 私はこれを実行します。それは私がそれをしたい50の特定の行ではなく、それぞれから250行を削除します...
to_deleteは降順で並べられています。
フル方法:私が間違ってやっているのよう
def method(results):
#results is a 500 x 1 matrix of 1's and -1s
global df1, df2
deletions = []
for i in xrange(len(results)-1, -1, -1):
if results[i] == -1:
deletions.append(i)
df1.drop(df1.index[deletions], inplace=True)
df2.drop(df2.index[deletions], inplace=True)
任意の提案ですか?
(私も.iloc
代わりの.index
を使用して、代わりに最初のリストに追加するのif statement
に削除しようとしました。
DFのインデックスが一意でない場合(例えば 'データ= pd.DataFrame(np.arange(12).reshape(4,3)、カラム= [ 'A'、 'B'、 'C' ]、index = [1,1,2,3]) ')、' data.drop(data.index [1,2]、inplace = True) 'は3行を削除します。ドロップするインデックスは2つだけです。 –