在不是 groupby 鍵列的列中有 NaN/None 值的地方,當last()
使用時,似乎 groupby 正在做某種填充:
df = pd.DataFrame({'a': [1, 2, 1, 2], 'b': [23, 43, np.nan, 12], 'c': ['x', 'y', 'z', None]})
a b c
0 1 23.0 x
1 2 43.0 y
2 1 NaN z
3 2 12.0 None
df.groupby(by='a', as_index=False, dropna=False).last()
a b c
0 1 23.0 z
1 2 12.0 y
預期輸出在哪里
a b c
0 1 NaN z
1 2 12.0 None
dropna=False
沒有幫助,因為它僅適用于 groupby 列“a”。有沒有辦法讓熊貓在沒有黑客攻擊的情況下不忽略 NaN/None 值?
uj5u.com熱心網友回復:
last
旨在獲取最后一個非 NA 值,在每一列中獨立。
你想要的(每組的最后一行)是tail
:
df.groupby(by='a', as_index=False).tail(1)
輸出:
a b c
2 1 NaN z
3 2 12.0 None
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495450.html
標籤:Python 熊猫-groupby 楠
上一篇:如何按帶有時區的日期時間列分組?