【发布时间】:2019-02-20 18:34:43
【问题描述】:
以下是我的数据的原始结构(pre-pivot):
product reviewer rating
0 foo userA 81
1 bar userB 96
2 foo userB 75
3 xyz userA 42
然后我正在跑步:
df = pd.pivot_table(df, index="product", columns="reviewer", values="rating")
这会产生一个新的数据框,布局正确,但神秘地显示出比属于更多的 NaN:
userA userB
foo NaN 75
bar NaN 96
xyz NaN NaN
有趣的是,如果我查看 df['userA']:
product
NaN
foo 81
bar 96
xyz NaN
...其中包含正确的数据(虽然我不太确定顶部的空白行是怎么回事,但这不是我关心的问题)。
知道是什么原因导致在显示(或写入 csv)完整表时出现额外的 NaN,即使在查看单个列时所有值都正确显示?
我已经尝试了here 的解决方案
df.set_index(['product', 'reviewer', 'rating']).unstack('reviewer')
但结果是一样的(除了现在用“None”代替“NaN”)。
【问题讨论】:
-
很抱歉,我的数据中都是“id”,但我将其更改为 product 以使其对这篇文章更直观,只是漏掉了几次。编辑原始帖子以保持一致性。
-
您的 edited 问题可能不再是问题,因为您的 edited 命令用于从您的编辑原始数据现在可以正常工作。
-
我所做的只是编辑它以准确反映导致错误的代码中发生的情况。我没有做任何与我写这篇文章之前不同的事情。在某些应该有评级值的情况下,数据框后枢轴显示 NaN。
标签: python pandas pivot pivot-table data-analysis