Skip to main content
 首页 » 编程设计

python之使用正则表达式从数据框中删除/排除列之Python

2025年05月04日24bjzhanghao

我有一个可以从下面的代码生成的数据框

    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 的单个字符。