根据 Pandas 中另一列中的索引从列中获取数据
Posted
技术标签:
【中文标题】根据 Pandas 中另一列中的索引从列中获取数据【英文标题】:Getting data from a column based on indexes in another column in Pandas 【发布时间】:2019-03-17 21:07:36 【问题描述】:我有一个数据框,其中两列包含列表,第一列包含项目,第二列包含索引。喜欢:
A B
0 [11, 12, 13, 14] [0, 2, 3, 0]
1 [11, 22] [1, 0]
2 [9, 7] [0, 1]
我想根据 B 中的索引创建另一个包含 Series A 元素的列,因此生成的系列应该是这样的:
C
0 [11,13,14,11]
1 [22,11]
2 [9,7]
有人可以帮忙吗?非常感谢提前
【问题讨论】:
B 在第一行有两次 0,可以吗? 是的,索引可以重复,但是两列中两个数组的总大小保持不变 【参考方案1】:使用
[ np.array(x)[y].tolist() for x , y in zip(df.A,df.B)]
Out[298]: [[11, 13, 14, 11], [22, 11]]
分配后
df['c']=[ np.array(x)[y].tolist() for x , y in zip(df.A,df.B)]
df
Out[300]:
A B c
0 [11, 12, 13, 14] [0, 2, 3, 0] [11, 13, 14, 11]
1 [11, 22] [1, 0] [22, 11]
【讨论】:
谢谢,但这不是总和。我需要基于 B 中的索引的 A 的值 非常感谢,你是天才:) @Mahdi yw :-) 快乐编码以上是关于根据 Pandas 中另一列中的索引从列中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]
如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?