python - 根据最后一行值过滤列

标签 python pandas dataframe

我有一个数据框并添加了最后一行的总数。

import pandas as pd
df = pd.DataFrame({'D': {0: 6, 1: 4, 2: 6},
                    'A': {0: 1, 1: 2, 2: 3},
                    'C': {0: 2, 1: 7, 2: 5},
                    'B': {0: 4, 1: 5, 2: 6}})
df = df.append(df.sum(), ignore_index=True)
df

    D  A   C   B
0   6  1   2   4
1   4  2   7   5
2   6  3   5   6
3  16  6  14  15
我如何过滤,例如只留下最后一行值(总计)大于 10 的列?
预期输出:
    D  C   B
0   6  2   4
1   4  7   5
2   6  5   6
3  16 14  15

最佳答案

您可以使用 DataFrame.iloc 选择最后一行然后使用 Series.gt 创建 bool 掩码,然后将此掩码与 DataFrame.loc 一起使用过滤所需的列:

df.loc[:, df.iloc[-1].gt(10)]
    D   C   B
0   6   2   4
1   4   7   5
2   6   5   6
3  16  14  15

关于python - 根据最后一行值过滤列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65752116/

相关文章:

python - 没有模块名称pyspark错误

python - pandas 按 block 分组

python - Pandas :根据一列中字符串的特定组合选择行对

java - Apache Spark to_json 选项参数

python-3.x - 基于映射的列乘法

python:更改后如何物理保存xml文件

python - 通过索引的二维数组更改二维数组

python - 如何在 Django 2.0 中为变量提供随机值?

python - 向 pandas 数据框中添加依赖于另一列的额外列

python - 如何加速pandas df.apply(np.where或np逻辑_and.reduce的概率?)