【发布时间】:2019-09-22 08:59:27
【问题描述】:
该列称为 df['Col1']。如果列内字符数等于10,我想在每个字符串的第5和第6个字符之间添加2个空格,否则在第5和第6个字符之间只添加一个空格。
例如 RPYHVBN56I 变成 RPYHV__BN56I,任何字符多或少的字符串只输入一个空格,如 RPYHVBN56I00000 变成 RPYHV_BN56I00000
【问题讨论】:
该列称为 df['Col1']。如果列内字符数等于10,我想在每个字符串的第5和第6个字符之间添加2个空格,否则在第5和第6个字符之间只添加一个空格。
例如 RPYHVBN56I 变成 RPYHV__BN56I,任何字符多或少的字符串只输入一个空格,如 RPYHVBN56I00000 变成 RPYHV_BN56I00000
【问题讨论】:
你可以试试:
df['Col1'] = df['Col1'].map(lambda s: s[:5] + (' ' if len(s) == 10 else ' ') + s[5:])
【讨论】:
s 因为单个值已经是字符串。当您想为整个series 调用字符串函数时,.str 是必需的。 [:5] 表示从开始到位置 5 的字符,例如 0-4 位置 - 前 5 个字符。