为了账号安全,请及时绑定邮箱和手机立即绑定

从 df.to_markdown() 中删除空格

从 df.to_markdown() 中删除空格

慕的地8271018 2024-01-12 10:29:43
通过将文本文件读入数据框中,我想根据现有列中的值添加一个新列,即添加“库存”和“交货”中的数值。问题是,原始数据(来自数据供应商)是从“df.to_markdowns()”生成的。看来我无法删除空格。ds = pd.read_csv("C:\\TEMP\\ff.txt", sep="|", header = 0, skipinitialspace=True)ds.columns = ds.columns.str.strip()df['new'] = ds['Stock'] + ds['Delivery']print (df)对于这样的情况,应该采取怎样的处理方式呢?顺便说一下,这模拟了从“df.to_markdown()”创建文本文件import pandas as pddata = {'Price': [59,98,79],'Stock': [53,60,60],'Delivery': [11,7,6]}df = pd.DataFrame(data)with open("C:\\TEMP\\ff.txt", 'a') as outfile:    outfile.write(df.to_markdown() + "\n")outfile.close
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

这应该可以满足您的需要。


ds = pd.read_csv(

    "C:\\TEMP\\ff.txt",

    sep="|",

    skiprows=[1],

    skipinitialspace=True

)

ds.columns = ds.columns.str.strip()

ds = ds.loc[:, ["Price", "Stock", "Delivery"]]

ds['new'] = ds['Stock'] + ds['Delivery']


print(ds)

输出


   Price  Stock  Delivery  new

0     59     53        11   64

1     98     60         7   67

2     79     60         6   66

skiprows=[1]跳过索引 1 处的行,即带有--------:


从数据帧中删除该行后,pandas 会自动将Price、Stock和Delivery列解释为整数,这使得语句ds['new'] = ds['Stock'] + ds['Delivery']能够按预期工作。


查看完整回答
反对 回复 2024-01-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

这适用于您提供的示例:

pd.read_csv("~/Downloads/ff.txt", sep=r"\s*\|\s*", engine="python", skiprows=[1])[["Price", "Stock", "Delivery"]]

如果您想要其他东西,我建议您提供一个示例。


查看完整回答
反对 回复 2024-01-12
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信