python - 删除 Pandas DataFrame.to_string 插入的列之间的自动两个空格

标签 python pandas dataframe formatting display

我正在寻找一种解决方案来删除/关闭 df.to_string 列之间的 2 个空格自动创建。

例子:

from pandas import DataFrame

df = DataFrame()
df = df.append({'a':'12345', 'b': '12345'})
df.to_string(index=False, header=False)
'12345  1235'

为清楚起见,结果是:“12345..12345”,其中点代表实际空间。

我已经尝试过 pandas.set_optionpandas.to_string文档。

编辑:上面的例子过于简化了。我正在使用一个现有的 df,它到处都是空格,输出文本文件由另一个基于每行字符宽度的黑盒程序使用。我已经想出如何使用格式化程序重新格式化列,并确保我的列不会被 pandas 默认截断,所以我已经完成了 90%(减去这些自动空格)。 仅供引用,这里有一些关于 to_string() 格式化和数据截断的好链接:

感谢您的帮助!

最佳答案

您可以使用 pd.Series.str.cat 方法,它接受一个 sep 关键字参数。默认情况下,sep 设置为 '',因此值之间没有分隔。以下是文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.cat.html

您还可以使用 pd.Series.str.strip 从每个值中删除任何前导或尾随空格。以下是文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.strip.html

这是一个基于您所拥有的示例:

df = pd.DataFrame({'a': ['12345'], 'b': ['12345']})
df.iloc[0].fillna('').str.strip().str.cat(sep=' ')

请注意,如果有任何空值,则需要 fillna('')

关于python - 删除 Pandas DataFrame.to_string 插入的列之间的自动两个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52030631/

相关文章:

python - 在 python 中,如何 'if finditer(...) has no matches' ?

python - 如何在 Python 中序列化 scandir.DirEntry 以通过网络套接字发送?

python - 相当于 dart 中的 python with 语句

Python循环两个不同的数据帧来创建一个新列

python - 拆分 pandas 数据框中字符串中的第 n 个元素

python - 从日期列创建月份列(但是日期列不包含月份信息)

python - 仅更改 DataFrame 的一列

Python Pandas 索引改革

python - 计算 Pandas 中数字和非数字列的每日平均值

python - 如何将多标签数据集拆分为多行,每行有一个标签?