如何从列提取值到另两个?



我第一次使用Pandas。有一个regex规则,从字符串012201202201/22中提取mm, yy:

def extractMMYY(str):
pattern = r"^((?:0[1-9]|1[0-2])|[0-9])[./\-]*([0-9]{3}[0-9]|[0-9]{2})$"
match = re.search(pattern, str)
mm = None
yy = None
if match:
mm = match.group(1)
yy = match.group(2)
if mm and yy:
return mm, yy
return mm, yy

我已经尝试为特定列应用此函数并获得一个新的数据框架:

df_filtered = df[df['column_name'].apply(extractMMYY)];

因此,我需要创建两个额外的列:MM, YY和extractMMYY的值。

怎么做?

你可以试试

df = pd.DataFrame({'column_name': {0: '0122', 1: '012022', 2: '01/22', 3: '9922', 4: '03/23'}})
df_filtered = pd.DataFrame(df['column_name'].apply(extractMMYY).tolist(), columns=['MM', 'YY'])
print(df_filtered)
MM    YY
0    01    22
1    01  2022
2    01    22
3  None  None
4    03    23

相关内容

  • 没有找到相关文章

最新更新