我有一個列索引to_delete,我想從兩個Pandas Dataframes,df1 & df2中刪除。他們都有500行。 to_delete有50個條目。 我運行此:試圖從Pandas Dataframe中刪除多行但刪除比預期更多的行
df1.drop(df1.index[to_delete], inplace=True)
df2.drop(df2.index[to_delete], inplace=True)
但是這導致在以各行250 DF1和DF2。它從每個刪除250行,而不是我想要的50個特定行...
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)'會刪除三行,即使你已經通過只有兩個指標下降。 –