给出以下数据框:
import pandas as pd
df=pd.DataFrame({'A':['a','b','c'],
'B':[[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]]]})
df
A B
0 a [[1, 2], [3, 4], [5, 6]]
1 b [[1, 2], [3, 4], [5, 6]]
2 c [[1, 2], [3, 4], [5, 6]]
我想创建一个新列(' C'),其中包含B列元组的每个元素中的第一个值,如下所示:
A B C
0 a [[1, 2], [3, 4], [5, 6]] [1,3,5]
1 b [[1, 2], [3, 4], [5, 6]] [1,3,5]
2 c [[1, 2], [3, 4], [5, 6]] [1,3,5]
到目前为止,我已经尝试过了:
df['C']=df['B'][0]
...但只返回第一个元组([1,2])。
提前致谢!
答案 0 :(得分:2)
df['C'] = df['B'].apply(lambda x: [y[0] for y in x])
答案 1 :(得分:1)
试试这个:
df['C'] = df["B"].apply(lambda x : [y[0] for y in list(x)])
答案 2 :(得分:1)
这对我有用 -
df['C'] = df['B'].str[0]