例如,我有一个包含A和B两列的DataFrame,每个列都包含一个数字。我现在想添加另一列C,它是一个嵌套列表,每个内部列表包含来自A和B的单个值。
A B C
index
0 2.3 6.4 [[2.3], [6.4]]
1 5.6 2.8 [[5.6], [2.8]]
2 8.2 9.0 [[8.2], [9.0]]
我试过了
df['C'] = [[x] for x in df[['A', 'B']].values.tolist()]
但这会导致
A B C
index
0 2.3 6.4 [[2.3, 6.4]]
1 5.6 2.8 [[5.6, 2.8]]
2 8.2 9.0 [[8.2, 9.0]]
答案 0 :(得分:3)
使用agg
即
df['C'] = df[['A','B']].agg(lambda x : ([x[0]],[x[1]]),1).apply(list)
index A B C
0 0 2.3 6.4 [[2.3], [6.4]]
1 1 5.6 2.8 [[5.6], [2.8]]
2 2 8.2 9.0 [[8.2], [9.0]]
如果你需要速度使用numpy的扩展暗淡,即
df['C'] = (df[['A','B']].values[:,:,None]).tolist()
df['C']
0 [[2.3], [6.4]]
1 [[5.6], [2.8]]
2 [[8.2], [9.0]]
Name: C, dtype: object
答案 1 :(得分:2)
df['C']=df[['A','B']].apply(lambda x : [[x[0]],[x[1]]],1).values.tolist()
df
Out[1051]:
A B C
0 1 4 [[1], [4]]
1 2 5 [[2], [5]]
2 3 6 [[3], [6]]