2 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
您需要將分隔符指定為空格而不是逗號(hào)。
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)
請(qǐng)注意,我曾經(jīng)delim_whitespace=True告訴 pandas 使用空格而不是逗號(hào)。此外,由于您在第一行中只有 2 個(gè)元素,因此我將列命名為讓 pandas 知道您期望 4 列。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
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)
因此,這會(huì)產(chǎn)生不必要的后果input2.txt,并且假設(shè)您的第一行是文本中的第一行,這應(yīng)該可以工作。
但它正在改變的是,它10 4變成0 10 4 0了它有 4 個(gè)元素。
我這樣做delim_whitespace=True是read_csv()因?yàn)樗嬖V熊貓不要用逗號(hào)而是用空格來做。
在頂部,我打開文件,使用lines = fin.readlines()然后執(zhí)行,lines[0]因?yàn)閘ines它是一個(gè)數(shù)組,第一個(gè)元素是arr[0]. 然后我把 0 和一個(gè)空格放在左邊,一個(gè)空格,然后一個(gè) 0 在右邊。然后我寫了一個(gè)新文本,并使用for循環(huán)寫了里面的所有行。
最后,我將它插入到read_csv()函數(shù)中并應(yīng)用to_excel()參數(shù)和我上面談到的另一個(gè)參數(shù)。
如果這會(huì)創(chuàng)建一個(gè)新的文本文件,那沒關(guān)系,并且文本內(nèi)容根本不是 pandas。這應(yīng)該可以工作,我還沒有檢查過,所以我不知道這是否有效。
希望這可以幫助!
添加回答
舉報(bào)