选择 .groupby() 之外的列
Selecting columns outside of .groupby()
我正在处理 Python 中的一个数据集,该数据集包含三列:州 (ST)、城市 (City) 和证书数量 (CERT)。我必须找到我使用以下代码完成的每个州的最少证书数量:
df.groupby(["ST"])["CERT"].min()
但是这个returns只有状态和证书数量,当我还需要输出城市时。我需要每个州拥有最少证书数量的城市。当我运行下面的代码:
df.groupby(["ST", "City"])["CERT"].min()
当我需要每个州的最小值以及该最小值所属城市时,我正在获取每个城市的最小值。有没有办法在 .groupby 函数之外包含城市列?
您可以使用 groupby
+ idxmin
获取最小值的索引,然后使用 loc
:
过滤 df
index_of_min_certificates = df.groupby('ST')['CERT'].idxmin()
out = df.loc[index_of_min_certificates]
例如,对于 df
,如下所示:
ST City CERT
0 CA LA 0
1 CA SF 1
2 NY NYC 2
3 NY Albany 3
以上代码产生:
ST City CERT
0 CA LA 0
2 NY NYC 2
我正在处理 Python 中的一个数据集,该数据集包含三列:州 (ST)、城市 (City) 和证书数量 (CERT)。我必须找到我使用以下代码完成的每个州的最少证书数量:
df.groupby(["ST"])["CERT"].min()
但是这个returns只有状态和证书数量,当我还需要输出城市时。我需要每个州拥有最少证书数量的城市。当我运行下面的代码:
df.groupby(["ST", "City"])["CERT"].min()
当我需要每个州的最小值以及该最小值所属城市时,我正在获取每个城市的最小值。有没有办法在 .groupby 函数之外包含城市列?
您可以使用 groupby
+ idxmin
获取最小值的索引,然后使用 loc
:
df
index_of_min_certificates = df.groupby('ST')['CERT'].idxmin()
out = df.loc[index_of_min_certificates]
例如,对于 df
,如下所示:
ST City CERT
0 CA LA 0
1 CA SF 1
2 NY NYC 2
3 NY Albany 3
以上代码产生:
ST City CERT
0 CA LA 0
2 NY NYC 2