Pandas pivot_表错误地显示了NaN值

2024-05-05 13:45:56 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的数据的原始结构(透视前):

    product    reviewer    rating
0       foo       userA        81
1       bar       userB        96
2       foo       userB        75
3       xyz       userA        42

然后我在跑步:

^{pr2}$

它产生了一个新的数据帧,布局正确,但神秘地显示了比属于更多的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”)。在


Tags: 数据dffoobarnanproduct结构跑步
1条回答
网友
1楼 · 发布于 2024-05-05 13:45:56

根据您的数据,您可以:

df_new=pd.pivot_table(df, index="product", columns="reviewer", values="rating").rename_axis(None,1)
print(df_new)

         userA  userB
product              
bar        NaN   96.0
foo       81.0   75.0
xyz       42.0    NaN

您引用的空白id可以通过调用rename_axis(None,1)来删除

相关问题 更多 >