.agg在groupby对象内的组上?

时间:2020-08-03 04:40:55

标签: pandas pandas-groupby

对不起,是否曾经有人问过我,我找不到它。

我有人口普查人口数据框,其中包含美国每个县的人口。

df的相关部分如下:

+----+--------+---------+----------------------------+---------------+
|    | REGION | STNAME  | CTYNAME                    | CENSUS2010POP |
+----+--------+---------+----------------------------+---------------+
| 1  | 3      | Alabama | Autauga County             | 54571         |
+----+--------+---------+----------------------------+---------------+
| 2  | 3      | Alabama | Baldwin County             | 182265        |
+----+--------+---------+----------------------------+---------------+
| 69 | 4      | Alaska  | Aleutians East Borough     | 3141          |
+----+--------+---------+----------------------------+---------------+
| 70 | 4      | Alaska  | Aleutians West Census Area | 5561          |
+----+--------+---------+----------------------------+---------------+

如何在不修改df的情况下获得美国四个地区中每个州的州人口的np.std(县人口的总和)?

2 个答案:

答案 0 :(得分:0)

您可以使用transform

df['std_col'] = df.groupby('STNAME')['CENSUS2010POP'].transform("std")

IIUC,如果您想要县总数,您可以这样做:

state_pop = df.groupby('STNAME')['CTYNAME'].nunique().apply(np.std)

答案 1 :(得分:0)

您也可以直接使用标准偏差方法std()

 new_df=df.groupby(['REGION'])[['CENSUS2010POP']].std()