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想要的是:
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,评估后应该有双倍的空间。
发布于 2021-10-04 01:45:41
您可以使用Python找到日期模式并用一个新字符串替换,使用Python雷尼在长度为2的字符串中重新对齐日期。
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输出
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发布于 2021-09-30 20:50:15
这使用字段中的两个空格作为拆分字符。然后确保中间的子字符串长6个字符(包括空格)。我在一个由您的列组成的数组上测试了这一点。
['{} {:>6} {}'.format(*i.split(' ')) for i in col]下面是我刚在dataframe上使用的代码
df['ASSESSMENT'] = ['{} {:>6} {}'.format(*i.split(' ')) for i in df['ASSESSMENT']]https://stackoverflow.com/questions/69382798
复制相似问题