如何移除Pandas DataFrame转字符串后行首的多余空格
解决Pandas DataFrame转字符串后多行前导空格问题
方法1:逐行去除前导空格
lstrip()仅处理字符串开头的空格,对换行后的行无效。可以将字符串按行拆分,逐行清除前导空格后重新拼接:
str_df = old_df.to_string(index=False) newdf = '\n'.join([line.lstrip() for line in str_df.splitlines()])
处理后所有行的前导空格都会被清除,输出结果为:
column_name row1 row2 row3
方法2:用to_csv替代to_string
如果不需要to_string的格式化对齐效果,直接用to_csv生成无格式字符串,默认不会添加对齐空格:
# 不保留表头、不输出索引 newdf = old_df.to_csv(index=False, header=False) # 若需保留表头,移除header=False参数即可 # newdf = old_df.to_csv(index=False)
这种方式输出的字符串无多余空格,格式更简洁。
方法3:调整to_string的对齐参数
如果需要保留表头且避免多余空格,可设置左对齐并指定匹配内容长度的列宽:
# 计算列名和内容的最大长度 max_len = max(old_df['column_name'].astype(str).str.len().max(), len('column_name')) newdf = old_df.to_string(index=False, justify='left', col_space=max_len)
此方法会让内容左对齐,不会生成多余前导空格。
内容的提问来源于stack exchange,提问作者Arshiya Fathima
相关产品推荐
相关产品推荐

