我使用Categorical
数据类型创建多个透视表,然后将它们合并到一个大的pivot表/数据帧中。在
但是,在某些情况下,我在执行合并时得到NaN
,当我试图fillna(0)
时,我得到以下错误:ValueError: fill value must be in categories
pv1 = pd.PivotTable(df, index='Category', values='Sales', aggfunc='sum')
pv2 = pd.PivotTable(df, index='Category', values='Quantity', aggfunc='sum')
chart = pv1.merge(pv2, on='Category', how='outer').fillna(0)
实际产量:
^{pr2}$期望输出:
Category Sales Quantity
Boxes 100 0
Staples 20 10
Paper 0 20
最直接的方法是定义要对其执行
fillna()
的列,然后只对这些列执行该操作(基本上不包括categorical
列)。在fill_cols = ['Sales','Quantity'] df[fill_cols] = df[fill_cols].fillna(0)
也许您应该尝试在最终输出上使用
fillna
,而不是中间步骤。这非常有效:相关问题 更多 >
编程相关推荐