它分为A和B。
df :
Category A A A B B
CODE U-01 U-02 U-03 U-04 U-05
n1 0 1 0 2 nan
n2 1 1 0 nan nan
n3 3 0 nan 0 2
我想基于标准值“ 0”,“> 0”和nan来计数值。
我想要的输出表如下所示:
Category A B
Standard 0 >0 nan 0 >0 nan
n1 2 1 0 0 1 1
n2 1 2 0 0 0 2
n3 0 1 1 1 1 0
example) "n1-> Standard : 0 " is A&U-01, A&U-03 So, 2
请帮我,,
使用DataFrame.unstack
了重塑DataFrame
了Series with Multiindex
,然后将其转换gretaer喜欢的值0
到>0
,替换缺失值的字符串nan
,并通过计算它们SeriesGroupBy.value_counts
与重塑Series.unstack
:
df1 = (df.unstack()
.mask(lambda x: x.gt(0), '>0')
.fillna('nan')
.groupby(level=[0, 2])
.value_counts()
.unstack([0,2], fill_value=0)
.rename(columns={0:'0'}))
print (df1)
Category A B
0 >0 nan >0 nan 0
n1 2 1 0 1 1 0
n2 1 2 0 0 2 0
n3 1 1 1 1 0 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句