2 回答
TA贡献1777条经验 获得超3个赞
您需要将分隔符指定为空格而不是逗号。
import pandas as pd
df = pd.read_csv("input.txt", header=None, delim_whitespace=True, names=['a','b','c','d'])
df.to_excel('test2.xls',index=False, header=None)
请注意,我曾经delim_whitespace=True告诉 pandas 使用空格而不是逗号。此外,由于您在第一行中只有 2 个元素,因此我将列命名为让 pandas 知道您期望 4 列。
TA贡献1799条经验 获得超6个赞
import pandas as pd
with open('input.txt') as fin:
lines = fin.readlines()
lines[0] = "0 " + lines[0] + " 0"
with open('input2.txt', 'w') as fout:
for line in lines:
fout.write(line)
df = pd.read_csv('input2.txt', header=None, delim_whitespace=True)
df.to_excel('output.xls', index=False, header=None)
因此,这会产生不必要的后果input2.txt,并且假设您的第一行是文本中的第一行,这应该可以工作。
但它正在改变的是,它10 4变成0 10 4 0了它有 4 个元素。
我这样做delim_whitespace=True是read_csv()因为它告诉熊猫不要用逗号而是用空格来做。
在顶部,我打开文件,使用lines = fin.readlines()然后执行,lines[0]因为lines它是一个数组,第一个元素是arr[0]. 然后我把 0 和一个空格放在左边,一个空格,然后一个 0 在右边。然后我写了一个新文本,并使用for循环写了里面的所有行。
最后,我将它插入到read_csv()函数中并应用to_excel()参数和我上面谈到的另一个参数。
如果这会创建一个新的文本文件,那没关系,并且文本内容根本不是 pandas。这应该可以工作,我还没有检查过,所以我不知道这是否有效。
希望这可以帮助!
添加回答
举报