python - 使用正则表达式从数据框中删除/排除列 - Python
问题描述
我有一个可以从下面的代码生成的数据框
df = pd.DataFrame({'person_id' :[1,2,3],'date1': ['12/31/2007','11/25/2009','10/06/2005'],'date1derived':[0,0,0],'val1':[2,4,6],'date2': ['12/31/2017','11/25/2019','10/06/2015'],'date2derived':[0,0,0],'val2':[1,3,5],'date3':['12/31/2027','11/25/2029','10/06/2025'],'date3derived':[0,0,0],'val3':[7,9,11]})
数据框如下所示
我想删除名称中包含“派生”的列。我尝试了不同的正则表达式,但无法获得预期的输出。
df = df.filter(regex='[^H\dDerived]+', axis=1)
df = df.filter(regex='[^Derived]',axis=1)
你能让我知道正确的正则表达式吗?
解决方案
您可以使用零宽度的负前瞻来确保字符串derived
不会出现在任何地方:
^(?!.*?derived)
^
匹配字符串的开头(?!.*?derived)
是确保derived
不会出现在字符串中的负前瞻模式
您的模式[^Derived]
将匹配不是 D/e/r/i/v/e/d 之一的任何单个字符。
推荐阅读
- python - 无法在 Databricks 中导入上传的 Python 轮子
- c# - 通过 ajax 发布不发送数据
- ios - 与 UIActivityViewController 共享 PDF - 文件名
- javascript - 与服务器端渲染堆栈反应
- sql - SQLite:group_concat 似乎只拉第一行?
- java - 解锁时 lockHardwareCanvas 比 lockCanvas 慢
- java - 重定向登录和未登录用户
- r - 如何使用 R 中的 here 包解决路径问题?
- python - python 3.6中的attrgetter函数
- unity3d - 防止爆炸粒子效果穿过地形