【发布时间】:2020-05-30 17:12:06
【问题描述】:
我有以下数据框:
g= pd.DataFrame({'A':[1,2,42,5,7],'B':[5,6,7,3,2]})
A B
0 1 5
1 2 6
2 42 7
3 5 3
4 7 2
我正在使用以下列表来过滤数据框:
list_values = [5,7,1]
并使用以下方法获得以下输出:
indexes = g[g['A'].isin(list_values)].index.values
输出
array([0, 3, 4], dtype=int64)
如何更改代码以使索引如下?
array([3, 4, 0], dtype=int64)
本质上,我正在寻找一种方法来过滤带有列表的 DF,并按照过滤器列表的顺序返回原始索引值。
谢谢!
我查看了这个,但没有找到我要找的东西: Select rows of pandas dataframe from list, in order of list
【问题讨论】:
-
@ALollz - 我想没关系。重要的是保持不丢失原始索引值并以与 list_values 相同的顺序返回列表。
-
np.array([g.loc[g.A==i].index[0] for i in list_values])仅在“A”中的值是唯一的并且列表中的所有元素都存在于“A”中时才有效 -
@Asettisriharsha - 效果很好,谢谢!