python - 如何仅选择具有序列名称的列到列表中
问题描述
我有一个熊猫数据框,其中包含 [ProDT、ID、...、D1、D2、D3...D7...] 的列。我想提取 D1~D15 的列名列表。
我应用了代码:
df_D = [col for col in df.columns if 'D' in col]
但是,将选择包含字符“D”的所有列。D* 列的数量可能会发生变化,因此使用 range(1,7) 可能不是一个好的解决方案。
非常感谢。
解决方案
您可以使用DataFrame.filter
选择与以下模式匹配的所有列:
df.filter(regex=r'^D\d+')
细节
^D\d+
^
在行首断言位置D
从字面上匹配字符 D(区分大小写)\d+
匹配一个数字(等于 [0-9])- + 量词 - 匹配一次到无限次,尽可能多次,根据需要回馈
推荐阅读
- lazy-loading - 如何在网页中延迟加载文本
- java - 链式反应组件调用
- unit-testing - 使用 Jest 在 Vue 中测试按钮上的触发器单击不起作用
- javascript - 如何将 HTML 片段中的文本写入带有换行符的文本文件?
- office-js - 使用 officejs Exceladd-in 的功能区命令中未显示图像图标
- excel - 尝试连接到网站时,VBA 中是否有解决错误运行时错误“429”的方法?
- python - 在python中重新排列3D数组
- typo3 - HOWTO 将新选项卡和字段添加到 tx_news
- http - 浏览器什么时候执行 CONNECT 方法?
- arrays - 使用 Azure 逻辑应用将 CSV 元素转换为单个数组