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]
コメントを追加