2017-07-25 93 views
1

我對Python和熊貓相當陌生,所以對於初學者的問題感到抱歉,但我還沒有找到解決方案來完成這個簡單的任務。在單個數據框上合併具有相同索引的多行?

數據框:

Org  Data1  Data2 
1   1234  Win 
1   2345  Win 
2      Loss 
3   3456  Win 
3   4567  Win 

我一直在嘗試使用此GROUPBY和應用拉姆達

df.groupby(["Org"])["Data1", "Data2"].apply(lambda x: ';;'.join(x.astype(str))) 

這並不正確,因爲結果是唯一的

Org 
1 Data1;;Data2 
2 Data1;;Data2 
3 Data1;;Data2 

此功能是我想實現的:

Org  Data1   Data2 
1   1234 ;; 2345  Win ;; Win 
2   NaN    Loss 
3   3456 ;; 4567  Win ;; Win 

Org表示我想用來對其進行分組的定義索引。同一個組織向Data1和Data2回答「1 2 3」應該到達excel中的同一個單元格,然後我將其打印爲一個全新的excel文件。

任何人都可以幫助我這個相當簡單(但對我來說難以置信)的問題?

回答

3

你是真的很近,只需要agg代替apply

df = df.groupby(["Org"])["Data1", "Data2"].agg(lambda x: ';;'.join(x.astype(str))) 
print (df) 
       Data1  Data2 
Org       
1 1234.0;;2345.0 Win;;Win 
2    nan  Loss 
3 3456.0;;4567.0 Win;;Win 
+0

非常感謝您的回覆快速和簡單的解決方案!顯然我只是使用了錯誤的搜索條件:)。 agg解決了這個。 – hexi

+0

Supeeer,很高興能幫助! – jezrael

相關問題