从两个单独的数组中读取文件中的数据



我是新的python和我试图从文件加载数据。我的文件看起来像这样:

TION 13168375
NTHE 11234972
THER 10218035
THAT 8980536
OFTH 8132597
FTHE 8100836
THES 7717675
WITH 7627991

我想将两列提取到单独的数组中。到目前为止,我尝试的是:

import numpy as np
s=open("Equadgrams.txt", "r")
data = np.genfromtxt(s, dtype=[('mystring','S4'),('myint','i8')])

在loadtxt命令的文档中,看起来我可以将结果拆分为单独的数组,但这会给我带来错误。

x,y = np.loadtxt(s, dtype=[('mystring','S4'),('myint','i8')])
Traceback (most recent call last):
File "<input>", line 3, in <module>
ValueError: too many values to unpack (expected 2)

我注意到的另一件事:数据数组中的整数看起来是正确的,但是字符串没有按预期读取。我得到第一个条目:b' tion ',它的类型是class

我希望有人能帮我解决我的问题。

也许你应该使用pandas,这是一个众所周知的python库来处理表格数据,就像你拥有的那样。因此,首先使用pip安装pandas,如下所示:

pip install pandas

然后像这样加载文件:

import pandas as pd
df = pd.read_csv("Equadgrams.txt",sep=" ")

如果你想要两个不同的数组,你可以使用以下命令:


s = open("filename.txt", "r")
lines = s.readlines()
strings = [line.split[' '][0] for line in lines]
ints = [line.split[' '][1] for line in lines]
s.close()

我希望这是你想要的正确形式。否则你必须在之后进行转换。

您可以遍历文件中的每一行,并使用.split方法将值附加到x和y:

x = []
y = []
file = open("file.txt","r")
for line in file:
x.append(line.split(" ")[0])
y.append(line.split(" ")[1])

最新更新