我正在关注使用Pandas的this article。
在那里,作者说:
大多数交通站都是白人司机,这是预料之中的,因为佛蒙特州的白人约为94%(使其成为全国第二低的多元化州,仅次于缅因州)。由于白色驱动程序占交通站点的大约94%,因此没有明显的偏见来拉动非白色驱动程序与白色驱动程序。然而,使用相同的方法,我们还可以看到,虽然黑人司机约占所有交通站点的2%,但只有1.3%的佛蒙特州人口是黑人。
但他没有说明如何使用熊猫来解决这个问题。
以下是数据的示例
In[165: df_vt['driver_race'].value_counts()
Out[15]:
White 261339
Black 5571
Asian 3446
Hispanic 2562
Other 263
Name: driver_race, dtype: int64
我发现我能做到:
df_vt.groupby(('driver_race')).size() / len(df_vt)
哪会给我:
driver_race
Asian 0.012614
Black 0.020393
Hispanic 0.009378
Other 0.000963
White 0.956651
dtype: float64
这几乎是我想要的(它确实给了我2%),但我很想看到像
这样的东西 White 261339 0.956651
Black 5571 0.020393
.
.
.
Other 263 0.000963
如何使用Pandas获得此功能?
答案 0 :(得分:1)
这很简单。计算value_counts
并将其转换为数据框。然后,只计算百分比列。
vc = df_vt['driver_race'].value_counts().to_frame('counts')
vc['%'] = vc['counts'] / vc['counts'].sum()
vc
counts %
White 261339 0.956651
Black 5571 0.020393
Asian 3446 0.012614
Hispanic 2562 0.009378
Other 263 0.000963