python - 选择大于 panda 数据框中数字的所有值

标签 python pandas

我有一个像这样的数据框,有超过 50 列(从 1963 年到 2016 年)。我想要选择所有人口超过一定数量(比如 6000 万)的国家。现在,当我查看时,所有问题都与从单个列中选取值有关。这里的情况并非如此。我也尝试过 df[df.T[(df.T > 0.33)].any()] 正如答案中所建议的。不起作用。有什么想法吗?

数据框如下所示:

Country Country_Code   Year_1979  Year_1999   Year_2013
  Aruba          ABW     59980.0      89005    103187.0
 Angola          AGO   8641521.0   15949766  25998340.0
Albania          ALB   2617832.0    3108778   2895092.0
Andorra          AND     34818.0      64370     80788.0

最佳答案

首先按 DataFrame.filter 过滤列名称中包含 Year 的列,比较所有行,然后按 DataFrame.any 进行测试每行至少有一个匹配值:

df1 = df[(df.filter(like='Year') > 2000000).any(axis=1)]
print (df1)
   Country Country_Code  Year_1979  Year_1999   Year_2013
1   Angola          AGO  8641521.0   15949766  25998340.0
2  Albania          ALB  2617832.0    3108778   2895092.0

或者将没有按位置选择的前 2 列的所有列与 DataFrame.iloc 进行比较:

df1 = df[(df.iloc[:, 2:] > 2000000).any(axis=1)]
print (df1)
   Country Country_Code  Year_1979  Year_1999   Year_2013
1   Angola          AGO  8641521.0   15949766  25998340.0
2  Albania          ALB  2617832.0    3108778   2895092.0

关于python - 选择大于 panda 数据框中数字的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59695860/

相关文章:

python - Pandas : Assign result of groupby to dataframe to a new column

datetime - 如何根据索引列执行pandas drop_duplicates

python - 从数据帧条目创建二维矩阵

python - 指定名称时,Pandas read_csv 不会引发错误行的异常

python - 在 Python/Micropython 中将 ADS1x15 库与 ADS1114 结合使用

python - 将 None 而不是 Series 传递给函数时出错

python - 如何在 python 中的文本预处理过程中保留小数?(已编辑)

csv - 如何通过 Pandas 数据框读取包含 utf-8 值的 .csv 文件

python - 模板化数据流在加载时挂起一个多小时并因错误而退出

python - 如何向 PyCharm 添加解释器?