python - 在标头 python pandas 中搜索部分字符串
问题描述
我想我已经阅读了所有类似的帖子,但还没有找到我需要的东西。
我有一堆 .csv 文件,它们原则上相似,但可能有一些不同的标题名称,列的位置不同等。我使用 pd.read_csv 调用它们:
df = pd.read_csv('MyFile.csv', delimiter=';')
这是示例 csv 文件头的一部分:
Index(['1. Datum', '2. Zeit', '3. Tunnellaenge. m',
'4. Vermessung: Hor. Ablage der Maschine. mm',
'5. Vermessung: Vert. Ablage der Maschine. mm',
………...
'21. SR:Drehzahl. rpm', '22. SR:Erddruck Schild. bar',
'23. STZ:Gesamtkraft. kN', 'Unnamed: 23'],
dtype='object'
我希望我的代码查看标题并找到我想要的列(基于部分字符串)。例如,我总是需要第 '3 列。隧道。m',名称通常不会改变,所以我会使用:
df['length'] = df.filter(like='laenge')
它通常有效,但如果我想搜索关键字“laenge”和/o“长度”怎么办?
就像标题'4的情况一样。Vermessung:霍尔。机器烧蚀。毫米', . 在这里,我希望 df.filter 返回包含'Hor' AND 'Maschine'的列。我怎么能做到?我也尝试了“正则表达式”功能,但它对我不起作用。使用str.contains()函数会更好吗?
这非常重要,因为我有许多不同的 CSV 文件,并且不想每次都调整代码。
谢谢你。
解决方案
采用:
m1 = df.columns.str.contains('laenge')
m2 = df.columns.str.contains('length')
m = m1 & m2
df1 = df.loc[:, m]
推荐阅读
- reactjs - 如何在 useEffect 中使用事件侦听器测试自定义钩子?
- reactjs - React 在异步回调中记忆值
- laravel - 如何解决 Postman GET 请求中未经身份验证的问题
- python - 我如何遍历几列并加入它们的值?
- openssh - 用于交互式会话的 aws ssm proxy 命令
- excel - 如何在 Excel 中制作一个具有 3 个单元格的计算器,并且当填充任意 2 个单元格时,计算剩余的一个单元格?
- jenkins - 在 PUT 请求 groovy 中隐藏 curl 数据
- jenkins - 使用多行字符串 Jenkins 的参数化远程触发器
- javascript - 为文档(顺序)分配优先级的最佳方法是什么 - Firestore
- python - python是否提供了一个基于键名自定义json字符串化的钩子?