我有一个像这样的数据框,有超过 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/