[英]Pandas pivot_table replaces nan with 0 aggfunc='sum'
我正在使用這種形式的多值數據透視表:
pivot = df.pivot_table(index=[indices], columns=['column'], values=['start_value','end_value','delta','name','unit'], aggfunc='sum')
要使用數據透視表獲得您想要的結果:您應該用 0 填充第一個 Nan 值:
df.fillna(0)
然后制作您的pivot_table。
替代的解決方案是使用GroupBy.sum
與參數min_count=1
,但也有被除去的非數字列 :
df = (df.groupby(['indices', 'column'])
['start_value','end_value','delta','name','unit']
.sum(min_count=1)
.unstack()
)
print (df)
start_value end_value delta
column '1nan' 'other' '1nan' 'other' '1nan' 'other'
indices
A NaN NaN 1000.0 NaN NaN NaN
因為使用pivot_table
刪除了NaNs列:
df = df.pivot_table(index=['indices'],
columns=['column'],
values=['start_value','end_value','delta','name','unit'],
aggfunc=lambda x: x.sum(min_count=1)
)
print (df)
end_value name unit
column '1nan' '1nan' 'other' '1nan' 'other'
indices
A 1000.0 'test' 'test2' 'USD' 'USD'
使用 mysum() 函數:
mysum = lambda x: sum(x)
奇怪但有效!
/米
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.