我正在尝试在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!我有什么误会/做错了什么?
答案 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