根据 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:根据另一列中的值获取与相应索引的确切对应值

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

将语料库中的名称部分匹配到 Pandas 数据框中另一列中的名称

如何根据bigquery中另一列中的重复值计算一列

如何根据Python中另一列中的日期查找最频繁的值