我是新的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])