Python 将数据转换为数据透视表
Python Convert data to pivot
我正在尝试将具有 100,000 行和 3 列的数据集转换为 pivot
。虽然以下代码运行没有错误,但值显示为 NaN
.
df1 = pd.pivot_table(df_TEST, values='actions', index=['sku'], columns=['user'])
它没有从 DataFrame
中获取值(范围从 1 到 36 )。有人遇到过这种情况吗?
当您进行数据透视时可能会发生这种情况,因为可能并非所有值都存在。例如
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
我正在尝试将具有 100,000 行和 3 列的数据集转换为 pivot
。虽然以下代码运行没有错误,但值显示为 NaN
.
df1 = pd.pivot_table(df_TEST, values='actions', index=['sku'], columns=['user'])
它没有从 DataFrame
中获取值(范围从 1 到 36 )。有人遇到过这种情况吗?
当您进行数据透视时可能会发生这种情况,因为可能并非所有值都存在。例如
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