0
我想將具有100,000行和3列的數據集轉換爲pivot
。下列代碼運行時沒有錯誤,但值顯示爲NaN
。Python將數據轉換爲數據透視
df1 = pd.pivot_table(df_TEST, values='actions', index=['sku'], columns=['user'])
它沒有取自DataFrame
的值(範圍從1到36)。有沒有人遇到過這種情況?
我想將具有100,000行和3列的數據集轉換爲pivot
。下列代碼運行時沒有錯誤,但值顯示爲NaN
。Python將數據轉換爲數據透視
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
你能提供一個可重複的例子嗎? – joris
你可以添加[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)?我測試它,它與我的示例'df_TEST = pd.DataFrame({'sku':{0:1,1:2,2:2},'user':{0:'a',1: 'a',2:'b'},'actions':{0:12,1:44,2:21}}) '。 – jezrael