我正在对我的数据(即熊猫数据框)进行一些EDA操作,因此我被困在了这一点上。我不知道如何计算party ==共和党或民主党的婴儿的价值。我想在arty ==共和党人或民主党人的所有列上应用value_counts。
party infants water budget physician salvador religious satellite
republican n y n y y y n
republican n y n y y y n
democrat ? y y ? y y n
democrat n y y n ? y n
democrat y y y n y y n
答案应该像
party infants
democrat. y=1, n=1, ?=1
republican y=0, n=2, ?=0
类似于所有列。我已经尝试过类似的事情。
infants_count = data["infants"].value_counts().where(data['party']=="democrat")
infants_count.loc['y']
我们将非常感谢您的帮助
答案 0 :(得分:2)
让我们尝试一下:
df_out = df.groupby('party')['infants'].value_counts().unstack(0).fillna(0)
df_out.apply(lambda x: ','.join(x.index +'='+x.astype(int).astype(str)))\
.rename('infant')\
.reset_index()
输出:
party infant
0 democrat ?=1,n=1,y=1
1 republican ?=0,n=2,y=0
df_out = df.groupby('party')['infants'].value_counts().unstack(-1).fillna(0)
df_out
输出:
infants ? n y
party
democrat 1.0 1.0 1.0
republican 0.0 2.0 0
绘图
df_out = df.groupby('party')['infants'].value_counts().unstack(-1).fillna(0)
ax = df_out.plot.bar(stacked=True)
输出:
选择一个值:
df_out.loc['democrat','y']
输出:
1.0