我正在使用 Python 中的数据集,该数据集包含三列:州 (ST)、城市 (City) 和证书数量 (CERT)。我必须找到使用以下代码完成的每个州的最少证书数量:
df.groupby(["ST"])["CERT"].min()
但是当我还需要输出城市时,这只返回状态和证书数量。我需要每个州拥有最少证书数量的城市。当我运行以下代码时:
df.groupby(["ST", "City"])["CERT"].min()
当我需要每个州的最小值以及该最小值所属的城市时,我得到了每个城市的最小值。有没有办法在 .groupby 函数之外包含 City 列?
您可以使用groupby
+idxmin
来获取最小值的索引,然后df
使用它进行过滤loc
:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句