Python将数据转换为数据透视

时间:2016-04-18 08:59:59

标签: python pandas pivot

我正在尝试将包含100,000行和3列的数据集转换为pivot。虽然以下代码运行时没有错误,但值显示为NaN

df1 = pd.pivot_table(df_TEST, values='actions', index=['sku'], columns=['user'])

未从DataFrame获取值(范围从1到36)。有人遇到过这种情况吗?

1 个答案:

答案 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