2017-03-01 45 views
3

我有一個問題,我希望有一個相對簡單的解決方案。我有一個數據幀,每個唯一聯繫人有多個記錄(請參閱下面的「名稱」)。我正在嘗試將名稱分組,並將它們丟失的位置彙總起來。熊貓 - 滾動行以填補缺失的數據

name id   email 
0 bob 5.0    NaN 
1 bob NaN  [email protected] 
2 bill 3.0    NaN 
3 bill NaN [email protected] 

預期結果將是:

name id   email 
0 bob 5.0  [email protected] 
1 bill 3.0  [email protected] 

我試着旋轉和重新旋轉幾種不同的方法都無濟於事。有什麼辦法可以做到這一點?

回答

5

您可以嘗試groupby.first()

df.groupby('name')[['id', 'email']].first() 

#  id   email 
#name  
#bill 3.0 [email protected] 
#bob 5.0 [email protected] 

同時檢查source code(根據其需要的第一個非空值),在這裏,如果你有興趣。

+3

df.groupby('name',as_index = False).first() – Boud

+0

@Boud這種簡單性使得我所嘗試的看起來很愚蠢。 – miradulo

+0

@米奇赫赫,我已經通過bfill ffill組合也在過去(是的,我可以在你的腦海裏讀到) – Boud