Pandas 如何为字符串列的每个值前后各添加一个空格
Pandas为字符串列所有值前后添加空格的实现方案
最优解决方案:直接字符串拼接
你不需要用ljust/rjust/center这类固定长度填充方法,这类方法适用于输出固定总长度的场景,而你的需求是不管原字符串长度多少,前后各追加1个空格,直接做字符串拼接即可:
# 直接拼接空格 df['Size'] = ' ' + df['Size'] + ' '
如果你的Size列不是字符串类型,先做类型转换再拼接:
# 先转字符串再拼接空格 df['Size'] = ' ' + df['Size'].astype(str) + ' '
效果验证
处理后Size列的取值会变成如下格式:
| 原取值 | 处理后取值 |
|---|---|
| 3-3/4 | 3-3/4 |
| 2 | 2 |
注:上述处理后取值前后各有1个空格,markdown渲染可能不明显,可通过
print(df['Size'].iloc[0])或者df['Size'].str.len()验证长度变化
其他可选实现(写法更繁琐,不推荐)
如果你一定要用pad类方法实现,也可以按原字符串长度动态计算填充总长度:
df['Size'] = df['Size'].str.pad( width=df['Size'].str.len() + 2, side='both', fillchar=' ' )
特殊场景处理
如果原字符串前后本身可能存在多余空格,想避免拼接后出现多个连续空格,可以先做去空格处理再拼接:
df['Size'] = ' ' + df['Size'].str.strip() + ' '
内容的提问来源于stack exchange,提问作者Heather
相关产品推荐
相关产品推荐

