python - 根据列表中包含字符串的名称选择熊猫数据框列
问题描述
我有一个数据框df
和一个字符串列表cols_needed
,它们表示我想要保留的列df
。中的列名df
与 中的字符串不完全匹配cols_needed
,因此我不能直接使用类似intersection
. 但列名确实包含cols_needed
. 我试着玩弄,str.contains
但无法让它工作。我如何df
根据cols_needed
?
import pandas as pd
df = pd.DataFrame({
'sim-prod1': [1,2],
'sim-prod2': [3,4],
'sim-prod3': [5,6],
'sim_prod4': [7,8]
})
cols_needed = ['prod1', 'prod2']
# What I want to obtain:
sim-prod1 sim-prod2
0 1 3
1 2 4
解决方案
您可以使用联合模式进行探索str.contains
,例如:
df.loc[:,df.columns.str.contains('|'.join(cols_needed))]
输出:
sim-prod1 sim-prod2
0 1 3
1 2 4
推荐阅读
- activiti - 错误:从 Activiti5 迁移到 flowable6,customSessionFactories
- firebase - 我如何在颤振和 Firebase Firestore 中制作价格范围过滤器
- c++ - 有没有办法将函数参数读取为在 c++ 中传递的确切名称?
- ruby-on-rails - 如何使用 curl 命令设置布尔值来填充数据库,Rails
- sapscript - 在 Form Painter ABAP 中显示 VBDKR-WAERK 的值时出错
- ansible - 使用 ansible playbook 按所有者搜索
- javascript - 对于像 (25) 这样带有角度百分比管道的数字,限制为 2 位小数
- r - 使用 tidync 只读取变量的子集
- oracle - 如何找到最近的定位点?
- fmt - 在 Windows 32 上使用 Intel C 编译 fmt