问题:寻找一种解决方案来删除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] 删除。
我来说两句