将lambda函数应用于列

时间:2016-04-06 17:12:37

标签: python pandas

我有一个数据帧df

   id   values
1  34   ['de, fa qe', 'ml, fr']
2  45   ['op er, qe', 'm, qn', 'asd, qwe, zxc'] 

我想结束:

   id   values
1  34   ['de, fa qe, ml, fr']
2  45   ['op er, qe, m, qn, asd, qwe, zxc'] 

我正考虑使用此功能

merger=lambda x, y:x+y

但我无法弄清楚如何应用它。

谢谢。

2 个答案:

答案 0 :(得分:3)

只需使用join访问者调用str

df = pd.DataFrame({'id': [34, 45],
                   'values': [['de, fa qe', 'ml, fr'], 
                              ['op er, qe', 'm, qn', 'asd, qwe, zxc']]})

>>> df['values'].str.join(', ')
0                  de, fa qe, ml, fr
1    op er, qe, m, qn, asd, qwe, zxc
Name: values, dtype: object

>>> df['values'].str.join(', ').iat[-1]
'op er, qe, m, qn, asd, qwe, zxc'

答案 1 :(得分:2)

不要使用作为列名,它与DataFrame属性冲突。

如果你有DataFrame:

   id   column1
1  34   ['de, fa qe', 'ml, fr']
2  45   ['op er, qe', 'm, qn', 'asd, qwe, zxc']

它只是在你想要的系列上使用apply方法。例如:

merger=lambda x: [''.join(s) for s in x]
df.column1 = df['column1'].apply(merger)