首页 > 解决方案 > 熊猫数据框从另一列中选择列表值

问题描述

每个人!我有一个像这样的熊猫数据框:

        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

有什么优雅的方法可以解决这个问题吗?谢谢!

标签: pythonpandasdataframe

解决方案


使用带有索引的列表推导:

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

推荐阅读