我有一个列表(list1),如下所示:
['loc1','loc3','loc6'.....]
我还有一个如下所示的数据框(df1):
Values Proportion
loc1 200 10
loc2 50 20
loc3 100 30
loc4 60 45
loc5 70 12
loc6 80 11
loc7 10 10
....
我想删除数据框中索引与列表中的值匹配的行。结果输出文件:
Values Proportion
loc2 50 20
loc4 60 45
loc5 70 12
loc7 10 10
....
我的解决方案是(但不起作用)。
reduced_file = set(df1.index) - list1
答案 0 :(得分:3)
试试这样:
df.loc[~df.index.isin(list1)]
答案 1 :(得分:1)
使用pandas.Index.difference
创建一个新索引,它是现有索引与要删除的索引列表之间的设置差异。
df.loc[df.index.difference(list1)]
Values Proportion
loc2 50 20
loc4 60 45
loc5 70 12
loc7 10 10
答案 2 :(得分:1)
您可以尝试reindex
df.reindex([x for x in df.index if x not in ['loc1','loc3','loc6']])
Out[946]:
Values Proportion
loc2 50 20
loc4 60 45
loc5 70 12
loc7 10 10