熊猫获得细胞中每个元组的第一个元素

时间:2016-07-12 16:30:41

标签: python-3.x pandas tuples

给出以下数据框:

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])。

提前致谢!

3 个答案:

答案 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]