首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单数替换为“空格和数字”Python : Replace _2/28

将单数替换为“空格和数字”Python : Replace _2/28
EN

Stack Overflow用户
提问于 2021-09-29 20:10:44
回答 2查看 93关注 0票数 0
代码语言:javascript
复制
DF_Column:         ASSESSMENT
            ASSESSMENT 21/28, MISSED
            ASSESSMENT 1/28, MISSED
            ASSESSMENT 2/28, MISSED
            ASSESSMENT 23/28, MISSED
            ASSESSMENT 23/28, MISSED
            ASSESSMENT 5/28, MISSED

我在python想要的是:

代码语言:javascript
复制
               ASSESSMENT
        ASSESSMENT 21/28, MISSED
        ASSESSMENT  1/28, MISSED
        ASSESSMENT  2/28, MISSED
        ASSESSMENT 23/28, MISSED
        ASSESSMENT 23/28, MISSED
        ASSESSMENT  5/28, MISSED

如果是单数/28,评估后应该有双倍的空间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-04 01:45:41

您可以使用Python找到日期模式并用一个新字符串替换,使用Python雷尼在长度为2的字符串中重新对齐日期。

代码语言:javascript
复制
import pandas as pd
import re

df = pd.read_csv('sample.csv', sep='\n')
print(df)

def fix_alignment(m):
    g1 = m.group(1).rjust(2, ' ')
    g2 = m.group(2)
    return f'{g1}/{g2}'

df['NewAlignment'] = df['ASSESSMENT'].apply(
        lambda row: re.sub(r'\b(\d{1})/(\d{2})', fix_alignment, row)
)
print(df)

df输出

代码语言:javascript
复制
                 ASSESSMENT              NewAlignment
0  ASSESSMENT 21/28, MISSED  ASSESSMENT 21/28, MISSED
1   ASSESSMENT 1/28, MISSED  ASSESSMENT  1/28, MISSED
2   ASSESSMENT 2/28, MISSED  ASSESSMENT  2/28, MISSED
3  ASSESSMENT 23/28, MISSED  ASSESSMENT 23/28, MISSED
4  ASSESSMENT 23/28, MISSED  ASSESSMENT 23/28, MISSED
5   ASSESSMENT 5/28, MISSED  ASSESSMENT  5/28, MISSED
票数 0
EN

Stack Overflow用户

发布于 2021-09-30 20:50:15

这使用字段中的两个空格作为拆分字符。然后确保中间的子字符串长6个字符(包括空格)。我在一个由您的列组成的数组上测试了这一点。

代码语言:javascript
复制
['{} {:>6} {}'.format(*i.split(' ')) for i in col]

下面是我刚在dataframe上使用的代码

代码语言:javascript
复制
df['ASSESSMENT'] = ['{} {:>6} {}'.format(*i.split(' ')) for i in df['ASSESSMENT']]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69382798

复制
相关文章

相似问题

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