选择 .groupby() 之外的列

阿马托夫

我正在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章