Skip to main content
 首页 » 编程设计

Python之正则表达式在Dataframe中拆分数据

2025年05月04日25kerrycode

我有一列包含值。我想根据正则表达式拆分它。如果正则表达式匹配,原始值将替换为拆分的左侧。新列将包含拆分的右侧。

下面是一些示例代码。我觉得我很接近,但它不太管用。

import pandas as pd 
import re 
 
df = pd.DataFrame({ 'A' : ["test123","foo"]}) 
 
// Regex example to split it if it ends in numbers 
r = r"^(.+?)(\d*)$" 
 
df['A'], df['B'] = zip(*df['A'].apply(lambda x: x.split(r, 1))) 
print(df) 

在上面的示例中,我希望得到以下输出

         A        B 
0     test      123 
1     foo 

我是 Python 的新手,我认为这是可行的方法。但是,看来我还没有完全达到目标。有人能帮我改正这个例子吗?

请您参考如下方法:

只是基于你自己的正则表达式

df.A.str.split(r,expand=True).replace('',np.nan).dropna(thresh=1,axis=1).fillna('') 
Out[158]:  
      1    2 
0  test  123 
1   foo      
 
 
df[['A','B']]=df.A.str.split(r,expand=True).replace('',np.nan).dropna(thresh=1,axis=1).fillna('') 
df 
Out[160]:  
      A    B 
0  test  123 
1   foo