我有一个列索引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)'会删除三行,即使你已经通过只有两个指标下降。 –