通过对数据框进行转换可以实现,参考代码如下:
import pandas as pd
df=pd.read_csv('titanic_dataset.csv')
ct=pd.crosstab([df.Pclass,df.Survived],df.Sex)
ct=ct.rename_axis([None], axis=1).reset_index()
mp=pd.pivot(ct,index='Pclass',values=['male','female'],columns='Survived')
mp.columns=mp.columns.droplevel()
mp.columns=['male_d','male_s','female_d','female_s']
mp['male_death_rate']=mp.male_d/mp.male_s
mp['female_death_rate']=mp.female_d/mp.female_s
mp = mp.rename_axis([None], axis=1).reset_index()
print(mp)
运行结果 :
Pclass male_d male_s female_d female_s male_death_rate female_death_rate
0 1 77 45 3 91 1.711111 0.032967
1 2 91 17 6 70 5.352941 0.085714
2 3 300 47 72 72 6.382979 1.000000
如有启发和帮助,请点击采纳按钮。