2017-10-11 400 views
1

結合在大熊貓數據幀行如何從下面的數據框達到了預期的結果通過遍歷

df 
      col_1    col_2 col_3 
    0 Non-Saved www.google.com 20,567 
    1    www.facebook.com  
    2    www.linkedin.com  
    3  Saved  www.Quora.com 6,337 
    4    www.gmail.com  

預期結果:

  col_1    col_2 col_3 
    0 Non-Saved  www.google.com 20,567 
        www.facebook.com 
        www.linkedin.com 
    1 Saved   www.Quora.com 6,337 
         www.gmail.com 

從5行2列由合併空字符串col_1和col_3。此外,將col_2中的值連接到一個單元格中。任何人都可以通過用戶定義的函數來幫助我做到這一點嗎?

回答

2

讓我們嘗試:

df = df.apply(lambda x: x.str.strip()).replace('',np.nan) 

df.groupby(df.col_1.ffill())\ 
    .agg({'col_2': lambda x: ' '.join(x) ,'col_3':'first'})\ 
    .reset_index() 

輸出:

 col_1            col_2 col_3 
0 Non-Saved www.google.com www.facebook.com www.linkedin.com 20,567 
1  Saved      www.Quora.com www.gmail.com 6,337 
+0

DF = df.apply。(拉姆達X:x.str.strip())替換( '',np.nan) 給出一個錯誤:'AttributeError:('只能使用.str訪問器和字符串值,它們在pandas'中使用np.object_ dtype','在'NumberOfRequests'索引處發生')' –

+0

是的,但看到這個[SO Post]( https://stackoverflow.com/a/34324332/6361531) –

+0

你可以試試'\ n'.join(x) –