python - 使用 pandas groupby 获取对应于最小值的行

标签 python pandas dataframe group-by pandas-groupby

我有一个表需要按条件分组:

R_num ORG name level
13    Dm   Ad   17
13    Dm   Af   16

当我使用它时,它会给我 13 Dm Ad 16 ,这就像被操纵的数据。

df1=df.reset_index().groupby(['R_num','ORG']).agg({'name':'first','level':['min']})

我要的结果是13 Dm Af 16 ,我知道 'name':'first' 可能有问题但我该如何解决这个问题?

谢谢

最佳答案

IIUC,你应该使用groupbyidxmin:

# df.loc[df.groupby(['R_num','ORG'])['level'].agg('idxmin')]
df.loc[df.groupby(['R_num','ORG'])['level'].idxmin()]

   R_num ORG name  level
1     13  Dm   Af     16

关于python - 使用 pandas groupby 获取对应于最小值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156291/

相关文章:

python - 加入两个numpy矩阵

python - 有条件地从 Pandas DataFrame 中采样行

python - 使用 DateTimeIndex 为随机 timedelta 值创建空的 pandas DataFrame

python - 如何修复 'AttributeError: ' list' object has no attribute 'shape' ' 加载模型时使用 Tensorflow/Keras 在 python 中的错误

python - NLTK FreqDist,绘制归一化计数?

python - 分隔 numpy 数组中的数字,这些数字用单引号括起来,并用空格分隔

python - 将 pandas 数据框中列的超出定义间隔限制的值设置为给定值(例如 NaN)

python - 仅显示 pandas 箱线图中的第 n 个刻度标签

python - 无法更新 DataFrame 中的特定条目

python - 使用带过滤器的 Pandas 写入 csv