【问题标题】:How select rows where certain columns have one of the largest values如何选择某些列具有最大值之一的行
【发布时间】:2021-05-14 11:41:56
【问题描述】:

我有一个 pandas 数据框,想要选择某些列在 2 个最大值中的行。输出应显示“持续时间”为 50 和 45 的行

我试过了

data = {
  "production": [420, 380, 390],
  "duration": [50, 40, 45]
}

df = pd.DataFrame(data)

df[df['production'] == df['production'].nlargest(2)]

ValueError: 只能比较标签相同的 Series 对象

【问题讨论】:

  • 请提供具有预期输出的示例数据框
  • 问题更新了

标签: python pandas


【解决方案1】:

试一试:

result = df[df['production'].isin(df['production'].nlargest(2))]

或者,如果您想要位于这 2 个值内的所有人口:

result = df[df['production'].between(*df['production'].nlargest(2).values[::-1])]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2016-11-05
    • 2021-07-23
    相关资源
    最近更新 更多