【问题标题】:Dataframe select rows where certain columns are sup to value数据框选择某些列支持值的行
【发布时间】:2019-12-17 11:15:47
【问题描述】:

我正在尝试过滤数据框并仅保留列列表优于 50M 的行

  Name      USD  GPB        DNR
0 jsk        0    0         154156151
1 psg        0    5444      0
2 om         0    51541477  0
3 barca      0    0         0
4 real       0    93636     55115

我能做什么,但它只用一列过滤

df_sup50M = df_sup50M[df_sup50M.USD >= 5000000]

预期输出:

  Name      USD  GPB        DNR
0 jsk        0    0         154156151
1 om         0    51541477  0

【问题讨论】:

  • 您告诉它只在一列上设置子集。如果您想对多个列进行子集化,请执行此操作。
  • @ifly6 因为当我尝试时:df_sup50M = df_sup50M[df_sup50M.USD >= 5000000 or df_sup50M.GPB >= 5000000] 我得到一个错误
  • 语法是df[(df.col > blah) | (df.col1 > blah) | (df.col3 > blah)],中间dfs依次执行每个子集命令,或者链接df.query(condition)语句

标签: python pandas dataframe filter


【解决方案1】:
#Mutiple or conditions
df = df[(df['USD'] >= 5000000) | (df['GPB'] >= 5000000) | (df['DNR'] >= 5000000)]

【讨论】:

  • 如果您解释了您提供的代码如何回答问题,这将是一个更好的答案。
  • 如果列是可变的,我该怎么做我只知道第一列是名称,应该比较其他列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多