首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从列中提取值到另两个列?

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

Stack Overflow用户
提问于 2022-05-23 16:33:21
回答 1查看 20关注 0票数 0

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

代码语言:javascript
运行
复制
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

我尝试将这个函数应用于特定的列并获得一个新的dataframe:

代码语言:javascript
运行
复制
df_filtered = df[df['column_name'].apply(extractMMYY)];

因此,我需要创建两个额外的列: MM,YY,其中包含来自extractMMYY的值。

怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 16:39:10

你可以试试

代码语言:javascript
运行
复制
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'])
代码语言:javascript
运行
复制
print(df_filtered)

     MM    YY
0    01    22
1    01  2022
2    01    22
3  None  None
4    03    23
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72351959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档