【发布时间】:2018-07-12 14:43:29
【问题描述】:
我正在使用Categorical dtype 创建多个数据透视表,然后将它们合并到一个大数据透视表/数据框。
但是,在某些情况下,当我执行合并时会收到 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)
实际输出:
Category Sales Quantity
Boxes 100 NaN
Staples 20 10
Paper NaN 20
期望的输出:
Category Sales Quantity
Boxes 100 0
Staples 20 10
Paper 0 20
【问题讨论】:
-
你试过
fillna单独列吗? -
@SuperStew 我没有,但这可能是诀窍。我猜
df.fillna(0)会尝试填充整个数据框,而不仅仅是Sales和Quantity -
df[['Sales','Quantity']].fillna(0)。您只需指明列
标签: python pandas pivot-table categorical-data fillna