pandas 在Python中将文本文件转换为.xlsx

u0njafvf  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(106)
10 4

0 0 0 0

0 0 1 0

1 0 2 0

2 2 0 1

0 0 1 1

0 1 2 1

1 1 1 1

1 2 2 0

0 0 1 0

2 0 1 0

我想读上面的文本文件存储在xlsx。但是我的代码整行都存储在同一个单元格中。但我要他们在不同的牢房。每个项目都是空间分隔的。

import pandas as pd

df=pd.read_csv('input.txt')

df.to_excel('test2.xls',index=False)

预期结果:每个项目存储在不同的单元格中。
注意,第一行只有2个元素。

06odsfpq

06odsfpq1#

您需要将分隔符指定为空格而不是逗号。

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列。

j8ag8udp

j8ag8udp2#

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个元素。
我为read_csv()做了delim_whitespace=True,因为它告诉pandas不要用逗号,而要用空格。
在顶部,我打开文件,使用lines = fin.readlines(),然后执行lines[0],因为lines是一个数组,第一个元素是arr[0]。然后我把0和一个空格放在左边,一个空格然后一个0放在右边。然后我写了一个新的文本,并使用for循环写入了里面的所有行。
最后,我将其插入到read_csv()函数中,并应用to_excel()和参数以及我上面提到的另一个参数。
如果这创建了一个新的文本文件,并且文本内容根本不是pandas,也没关系。这应该是工作,我还没有检查,所以我不知道这是否工作或没有。
希望这对你有帮助!

相关问题