2017-09-05 25 views
6

我一直在嘗試搜索如何獲取第一列的值並將其附加到數據框中的其餘列,但是我已經看到需要爲新產出製作一個新專欄。如何將第一列的值附加到熊貓數據框的所有其他列中

最近我發現基於我需要的是這段代碼。

df['col'] = 'str' + df['col'].astype(str) 

下面是我的數據框

 col1  col2 col3 col4 
1 02-04-2017  ND  0.32  0.8 
2 02-05-2017  0.3  ND  No Connection 

我想知道的是樣品,我怎麼能得到這個輸出?

 col1   col2    c ol3    col4 
1 02-04-2017 ND|02-04-2017  0.32|02-04-2017  0.8|02-04-2017 
2 02-05-2017 0.3|02-05-2017 ND|02-05-2017  No Connection|02-05-2017 

回答

3

你可以做到這一點很容易與df.ilocstr.cat

df.iloc[:, 1:] = df.iloc[:, 1:].apply(lambda x: x.str.cat(df['col1'], sep='|')) 
df 

     col1   col2    col3      col4 
1 02-04-2017 ND|02-04-2017 0.32|02-04-2017   0.8|02-04-2017 
2 02-05-2017 0.3|02-05-2017 ND|02-05-2017 No Connection|02-05-2017 

您也可以使用df.transform(v0.20起)。 transform`的`在dataframes

df.iloc[:, 1:] = df.iloc[:, 1:].transform(lambda x: x.str.cat(df['col1'], sep='|')) 
df 

     col1   col2    col3      col4 
1 02-04-2017 ND|02-04-2017 0.32|02-04-2017   0.8|02-04-2017 
2 02-05-2017 0.3|02-05-2017 ND|02-05-2017 No Connection|02-05-2017 
+0

善意的提醒後'0.20' – piRSquared

3

樂趣assignadd,並且radd

df.assign(**df.iloc[:, 1:].astype(str).add(df.col1.radd('|'), 0)) 

     col1   col2    col3      col4 
1 02-04-2017 ND|02-04-2017 0.32|02-04-2017   0.8|02-04-2017 
2 02-05-2017 0.3|02-05-2017 ND|02-05-2017 No Connection|02-05-2017 
+0

不知道爲什麼,但我試過多次添加和失敗。猜猜我做錯了! –

+0

'dtype'只是我能想到的問題 – piRSquared

相關問題