这段代码:
df2 = (
pd.DataFrame({
'X' : ['X1', 'X1', 'X1', 'X1'],
'Y' : ['Y2', 'Y1', 'Y1', 'Y1'],
'Z' : ['Z3', 'Z1', 'Z1', 'Z2']
})
)
g = df2.groupby('X')
pd.pivot_table(g, values='X', rows='Y', cols='Z', margins=False, aggfunc='count')
返回以下错误:
Traceback (most recent call last): ...
AttributeError: 'Index' object has no attribute 'index'
如何获得一个数据透视表,其中包含一个 DataFrame 列 的唯一值 对其他两个列的计数?
是否有 aggfunc
计数唯一?我应该使用 np.bincount()
吗?
注意。我知道 pandas.Series.values_counts()
但是我需要一个数据透视表。
编辑:输出应该是:
Z Z1 Z2 Z3
Y
Y1 1 1 NaN
Y2 NaN NaN 1
原文由 dmi 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的意思是这样的吗?
请注意,使用
len
假设您的 DataFrame 中没有NA
。您可以执行x.value_counts().count()
或len(x.dropna().unique())
否则。