【问题标题】:Extracting two values from dataframe using third value使用第三个值从数据框中提取两个值
【发布时间】:2017-11-02 22:08:49
【问题描述】:

我有一个这样的数据框:

ID  TYPE     VALUE 
1     h        45
1     l        50
2     g        60
2     h        99
2     l        65
3     h        11
3     l        13
3     k        22 

我需要根据每个 ID 的最大 VALUE 提取 ID 和 TYPE。

结束

1     l
2     h
3     k

刚从 Python 开始,甚至不知道从哪里开始。

提前致谢!

【问题讨论】:

  • 对不起,我似乎无法编辑或删除这个。
  • 编辑或删除什么,究竟是什么?
  • 格式错误。它得到了修复。

标签: python dataframe extract


【解决方案1】:

这里需要一些 pandas 函数,尤其是 groupby()

idx = df.groupby(['ID'])['VALUE'].transform(max) == df['VALUE']
df[idx]

产量

    ID  TYPE    VALUE
1   1   l       50
3   2   h       99
7   3   k       22

【讨论】:

    【解决方案2】:

    您想将groupbyidxmax 一起使用:

    df[df.groupby(['ID'])['VALUE'].idxmax()]
    
        ID  TYPE    VALUE
    1   1   l       50
    3   2   h       99
    7   3   k       22
    

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2018-04-08
      相关资源
      最近更新 更多