df2 = pd.DataFrame({'X' : ['X1', 'X1', 'X1', 'X1'], 'Y' : ['Y2','Y1','Y1','Y1'], 'Z' : ['Z3','Z1','Z1','Z2']})
X Y Z
0 X1 Y2 Z3
1 X1 Y1 Z1
2 X1 Y1 Z1
3 X1 Y1 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列的唯一值计数小于或等于另外两个列的唯一值计数?
count unique是否存在aggfunc
?我应该使用np.bincount()
吗?
注意。我知道“Series”values_counts()
但是我需要一个透视表。
编辑:输出应为:
Z Z1 Z2 Z3
Y
Y1 1 1 NaN
Y2 NaN NaN 1
因为pandas的版本至少是0.16,所以它不接受参数“rows”
截至0.23,解决方案是:
返回:
你是说这样的事吗?
注意,使用
len
假设数据帧中没有NA
s。否则,您可以执行x.value_counts().count()
或len(x.dropna().unique())
。我想这会更完美:
相关问题 更多 >
编程相关推荐