python - 如何排除和过滤 Pandas 中的几列?

标签 python pandas dataframe

我知道我们只能使用 pandas 数据框过滤器选择几列,但我们也可以只排除一些列吗?

这是MWE:

import numpy as np
import pandas as pd


df = pd.DataFrame({'id': [1,2,3], 'num_1': [10,20,30], 'num_2': [20,30,40]})

df.filter(regex='num')

我们可以选择列中没有“num”的所有列:

就像是:
df.filter(regex='^(num)')

所需输出
   id
0   1
1   2
2   3

备注
# these already works, i am only looking regex way
df[['id']] # gives the required output


引用:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.filter.html

最佳答案

您可以获得没有 num 的列的列表使用列表理解

cols_without_num = [x for x in list(df) if 'num' not in x]

然后对数据进行子集化
df[cols_without_num]

关于python - 如何排除和过滤 Pandas 中的几列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009504/

相关文章:

python - 更新嵌入式 Mongo 文档 - Mongoengine

python - 如何根据行的内容分割pyspark数据帧

python - Pandas 填补了 NA 但并非全部基于最近的记录

python - 如何计算系列对象( Pandas )内数据框的平均值?

Python 分箱代码并取平均值

python - 如何通过访问数据框而不是python中的csv进行情感分析?

python - python opencv imread间歇性地在macOS上返回None

python - 如何清理表面

python - 具有数据库连接的多处理

python - Pandas 散点图 : Indices Out-of-Bounds