该问题最初被问到here作为评论,但由于问题被标记为重复,因此无法得到正确的答案.
对于给定的pandas.DataFrame,让我们说
df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]})
df
A B
0 5 1
1 6 2
2 3 3
3 4 5
我们如何根据列中的值(例如’A’)从列表中选择行
例如
# from
list_of_values = [3,4,6]
# we would like, as a result
# A B
# 2 3 3
# 3 4 5
# 1 6 2
如上所述使用isin here并不令人满意,因为它没有保持’A’值的输入列表的顺序.
如何实现上述目标?
解决方法:
解决此问题的一种方法是将“A”列设为索引,并在新生成的pandas.DataFrame上使用loc.最终,可以重置子采样数据帧的索引.
方法如下:
ret = df.set_index('A').loc[list_of_values].reset_index(inplace=False)
# ret is
# A B
# 0 3 3
# 1 4 5
# 2 6 2
请注意,此方法的缺点是原始索引已在此过程中丢失.
有关熊猫索引的更多信息:What is the point of indexing in pandas?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。