从 df.to_markdown() 中删除空格

通过将文本文件读入数据框中,我想根据现有列中的值添加一个新列,即添加“库存”和“交货”中的数值。


问题是,原始数据(来自数据供应商)是从“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)

https://img1.sycdn.imooc.com/65a0a42e0001c7ea05370098.jpg

对于这样的情况,应该采取怎样的处理方式呢?


顺便说一下,这模拟了从“df.to_markdown()”创建文本文件


import pandas as pd


data = {'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


慕的地8271018
浏览 136回答 2
2回答

萧十郎

这应该可以满足您的需要。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  new0     59     53        11   641     98     60         7   672     79     60         6   66skiprows=[1]跳过索引 1 处的行,即带有--------:从数据帧中删除该行后,pandas 会自动将Price、Stock和Delivery列解释为整数,这使得语句ds['new'] = ds['Stock'] + ds['Delivery']能够按预期工作。

Qyouu

这适用于您提供的示例:pd.read_csv("~/Downloads/ff.txt", sep=r"\s*\|\s*", engine="python", skiprows=[1])[["Price", "Stock", "Delivery"]]如果您想要其他东西,我建议您提供一个示例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python