python - 从列表中选择熊猫数据框的行,按列表顺序
问题描述
该问题最初是在此处作为评论提出的,但由于该问题被标记为重复,因此无法得到正确的答案。
对于给定的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
如此处所述的使用并不令人满意,因为它不能保持输入'A'
值列表中的顺序。
如何实现上述目标?
解决方案
克服这个问题的一种方法是使'A'
列 anindex
并loc
在新生成的pandas.DataFrame
. 最终,可以重置子采样数据帧的索引。
方法如下:
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
请注意,此方法的缺点是原始索引在此过程中已丢失。
有关pandas
索引的更多信息:在 pandas 中进行索引有什么意义?
推荐阅读
- azure-active-directory - MS Teams Bot:对于来自 BotBuilder-Samples 的 Teams 对话机器人,网络聊天中的测试未经授权
- javascript - 打算在完全执行的其他 js 文件中加载 JQuery 一次函数
- typescript - 当值已设置为 false 时,是否需要在 typescript 中指定数据类型 boolean?
- wpf - WPF:单击时不会关闭列表框或菜单(在 Telerik Splitbutton 内)
- swift - RxSwift:如何响应一系列通知?
- javascript - 一个关于道具的javascript reactjs问题
- android - 不知道位置时的 notifyItemInserted 和 notifyItemRangeInserted
- samsung-mobile - J7 Prime SamsungExperienceServices 不断停止
- python - 使用来自两个数据帧的信息更新空数据帧的更快方法
- ietf-netmod-yang - 来自 pyang confd 的配置或操作数据