嗨,我有一個像這樣的欄位的 Excel 表
FName, LastName, DOB, BirthPlace, Address, Desig
John, Cash, 21-09-1986, Darwin, , ,
John, Cash, , , , 22 Howard Springs Darwin,
John, Cash, , , 20 Howard Springs Darwin , Supervisor
所以我想對 Fname、LastName、DOB、Birth Place 進行分組,但我只想從 Address 和 Desig 等其他列中選擇“最后一個”非空欄位。另請注意,盡管同一個人可能會有很多更新,但我不會獲得每一行中的所有 col 值。就像上面的第二行一樣,我沒有 DOB、BirthPlace、Desig。我可以有很多這樣的行,每個專案只有一個 col 更新,但名稱和 dob 欄位大部分時間都存在。
我試著這樣做
df2 = input_df.groupby(['Fname','LastName','BirthPlace','DOB']).agg({ 'Address':'last',
'Desig':'last'
}).reset_index()
但是我在輸出中沒有或空值。
我的預期輸出應該是(地址更新和指定設定以及這些列中的最后一個非空值)
John, Cash,21-09-1986, Darwin, 20 Howard Springs Darwin , Supervisor
uj5u.com熱心網友回復:
如果只有Fname,LastName解決方案有可能定義的組,則應簡化
請原諒使用tail(1) 而不是last()。不知道為什么它不起作用。但我想你明白了。使用 lambda 函式擴展您的 agg 以在最后洗掉之前先洗掉空白。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/310974.html
下一篇:網頁抓取不會在html中回傳
