熊猫Pivot_table的意外结果

时间:2018-07-06 13:14:12

标签: python pandas numpy dataframe pivot-table

我正在尝试在pandas Dataframe上做一个数据透视表。我几乎得到了预期的结果,但是似乎乘以2。我可以将其除以二并称其为一天,但是,我想知道我是否做错了什么。

代码如下:

import pandas as pd
import numpy as np

df = pd.DataFrame(data={"IND":[1,2,3,4,5,1,5,5],"DATA":[2,3,4,2,10,4,3,3]})
df_pvt = pd.pivot_table(df, aggfunc=np.size, index=["IND"], columns="DATA")

df_pvt现在是:

DATA   2    3    4    10
IND                     
1     2.0  NaN  2.0  NaN
2     NaN  2.0  NaN  NaN
3     NaN  NaN  2.0  NaN
4     2.0  NaN  NaN  NaN
5     NaN  4.0  NaN  2.0

但是,应该用1.0代替2.0!我有什么误会/做错了什么?

1 个答案:

答案 0 :(得分:3)

改为使用字符串'size'。这将触发熊猫对“大小”的解释,即一组中元素的数量。 NumPy对大小的解释是每个维度的长度的乘积。

df = pd.pivot_table(df, aggfunc='size', index=["IND"], columns="DATA")

print(df)

DATA   2    3    4    10
IND                     
1     1.0  NaN  1.0  NaN
2     NaN  1.0  NaN  NaN
3     NaN  NaN  1.0  NaN
4     1.0  NaN  NaN  NaN
5     NaN  2.0  NaN  1.0