熊猫-DataFrame.to_string删除列之间的自动间距

派德·派珀

问题:寻找一种解决方案来删除df.to_string自动创建的列之间的2个空格。进一步来说; 我认为必须进行某种设置才能关闭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_option文档-pandas.to_string文档

最终挑战:该示例过于简化。我正在与一个现有的df一起使用,该df到处都有空格,并且输出的文本文件由另一个基于每个行的字符宽度的黑盒程序使用。我已经想出了如何使用格式化程序重新格式化列,并确保我的列没有被pandas默认值截断,所以我在那里90%(减去这些自动空格)。与to_string格式和数据截断有关的良好链接:

使用pandas to_string中的formatters参数转换为日期

https://github.com/pandas-dev/pandas/issues/9784

感谢帮助!

亨利·伍迪

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

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

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

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

请注意,fillna('')如果有任何空值则为必填项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章