以下是输入。
X Y Z
AP 1 1 1
Karnataka 0 1 0
Goa 1 1 0
Tamilnadu 0 1 0
AP 0 1 1
Goa 0 0 0
Tamilnadu 0 1 1
Goa 0 0 0
AP 1 0 0
Tamilnadu 0 1 0
Tamilnadu 1 1 0
Goa 0 1 1
Karnataka 0 0 0
Karnataka 0 1 0
要执行的计算:
A列中的州数
第X列中存在的1的数量除以A列中每个州的数量
代码应该是动态的,因为列数和行数可能会有所不同。
预期产出:
Total AP Karnataka Goa Tamilnadu
Total Sample 14 3 3 4 4
X 0.2857 0.6667 0.0000 0.2500 0.2500
Y 0.7143 0.6667 0.6667 0.5000 1.0000
Z 0.2857 0.6667 0.0000 0.2500 0.2500
答案 0 :(得分:0)
我确信有更好的方法,但以下工作。
假设my_df有输入数据;
result=my_df.groupby('A').mean().transpose()
result1=my_df.groupby('A').sum().transpose()
result1=result1.append(my_df['A'].value_counts())
result1=result1.rename({'A':'Total Sample'})
result1['Total']=result1.apply('sum',axis=1)
finalRow=result1.iloc[len(result1)-1]
for i in range(len(result1)-1):
result1.iloc[i]=result1.iloc[i]/finalRow
result['Total']=result1['Total']
result=result.append(result1.loc['Total Sample'])
完成!!!