python - 熊猫数据框从另一列中选择列表值
问题描述
每个人!我有一个像这样的熊猫数据框:
A B
0 [1,2,3] 0
1 [2,3,4] 1
我们可以看到,A 列是一个列表,B 列是一个索引值。我想得到一个 C 列,它是 A 中的 B 索引:
A B C
0 [1,2,3] 0 1
1 [2,3,4] 1 3
有什么优雅的方法可以解决这个问题吗?谢谢!
解决方案
使用带有索引的列表推导:
df['C'] = [x[y] for x, y in df[['A','B']].to_numpy()]
或者DataFrame.apply
,但是如果大 DataFrame 应该会更慢:
df['C'] = df.apply(lambda x: x.A[x.B], axis=1)
print (df)
A B C
0 [1, 2, 3] 0 1
1 [2, 3, 4] 1 3
推荐阅读
- php - 如何仅查询(月和年)之前的日期?(拉拉维尔)
- android - 错误:尝试在空对象引用上调用虚拟方法“java.lang.String android.os.Bundle.getString(java.lang.String)”
- python - 如何在我的网站上表示数据框?
- java - 如何修复返回值未显示在我的一种方法中
- php - 有没有更好的方法来为我的页脚轮播数据对象编写函数
- reporting-services - 一个数据集控制 SSRS *.rdl 中的其他数据集?
- r - R:在 Ubuntu 18.04 上带有安装箭头的箭头
- java - Spring调度程序未按计划启动
- docker - 运行 docker 容器错误:找不到可服务模型的基本路径 /models/model
- typescript - 有多种类型实现,但根据 Typescript 中的条件,只有一个处于活动状态