我正在尝试将包含100,000行和3列的数据集转换为pivot
。虽然以下代码运行时没有错误,但值显示为NaN
。
df1 = pd.pivot_table(df_TEST, values='actions', index=['sku'], columns=['user'])
未从DataFrame
获取值(范围从1到36)。有人遇到过这种情况吗?
答案 0 :(得分:0)
执行数据透视时可能会发生这种情况,因为并非所有值都存在。 e.g。
In [10]: df_TEST
Out[10]:
a b c
0 0 0 0
1 0 1 0
2 0 2 0
3 1 1 1
4 1 2 3
5 1 4 5
现在,当你对此进行调整时,
In [9]: df_TEST.pivot_table(index='a', values='c', columns='b')
Out[9]:
b 0 1 2 4
a
0 0 0 0 NaN
1 NaN 1 3 5
请注意,您在索引0和第4列获得了NaN,因为df_TEST中没有条目,其中列a = 0且列b = 4.
通常用零填充这些值。
In [11]: df_TEST.pivot_table(index='a', values='c', columns='b').fillna(0)
Out[11]:
b 0 1 2 4
a
0 0 0 0 0
1 0 1 3 5