2017-09-05 101 views
6

İlk sütunun değerini nasıl alacağınızı araştırmaya ve veri çerçevesindeki kalan sütunlara nasıl ekleyeceğimi araştırmaya başladım. Gördüğüm yeni çıktı için hala yeni bir sütun oluşturmaya ihtiyacım var.İlk sütunun değerlerini, pandalar veri çerçevesindeki tüm diğer sütunlara nasıl eklersiniz?

İhtiyacım olanı temel alarak bulduğum en yakın kod bu koddur. Aşağıda

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

bu çıktıyı almak nasıl, benim dataframe

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

Ne bilmek istiyorum bir örneğidir?

 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 

cevap

3

Kolayca df.iloc ve str.cat ile bu biraz yapabilirsiniz:

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 

Ayrıca df.transform (v0.20 itibaren) de kullanabilir. ama birden çok kez eklemek denenmiş ve neden başarısız dataframes üzerinde transform` `arasında

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

İyi hatırlatma' 0.20' – piRSquared

3
assign, add Eğlenceli

ve 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

Emin değilim sonrası. Sanırım yanlış yapıyordum! –

+0

'dtype' sadece düşünebildiğim sorun – piRSquared