2016-04-06 66 views
1

我有一個數據幀DF應用lambda函數的列

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 

但我無法弄清楚如何應用它。

謝謝。

回答

3

只需使用str訪問器調用join即可。

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' 
2

請勿使用作爲列名稱,它與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) 
+1

你的lambda函數中的'y'是什麼? ;) – MaxU

+0

固定!謝謝@MaxU!沒有仔細看過lambda函數。 –