我有一个以下形式的文本文件:
data=
11 Open Water
12 Perennial Ice/Snow
21 Developed, Open Space
22 Developed, Low Intensity
23 Developed, Medium Intensity
112 Developed, High Intensity
113 Barren Land
0 No data
我想读取文件并将其保存为数组或数据框(列名称 = Code、Name),并且能够以 data['Code'] 或 data['Name'] 的形式访问列。
打印(数据)命令将生成:
Code Name
11 Open Water
12 Perennial Ice/Snow
21 Developed, Open Space
22 Developed, Low Intensity
23 Developed, Medium Intensity
112 Developed, High Intensity
113 Barren Land
0 No data
我现在的代码:
myfile = open("filename.txt",'r')
for line in myfile:
Code, Name = line.split(' ', 1)
data=Code + " " + Name
print(data)
但是这是错误的,因为 data 中的每一行都是一堆字符串,而不是两个字符串。我应该如何将此文件作为两个变量打开?
最佳答案
data=Code + " " + Name
上面的行将两个变量 Code
和 Name
的内容合并为一个字符串变量。
您可以声明一个空列表,并在迭代文件时将其追加到该列表中。
mydata = []
with open('filename.txt', 'r') as myfile:
for line in myfile:
# remember to remove trailing newline characters.
code, name = line.strip('\n').split(' ', 1)
mydata.append((code, name))
然后生成的列表 mydata
将包含行,每行两列。 (它是一个二元素元组列表)
每行的第一列是code
,第二列是name
。然而,在这个阶段,code
仍然是一个字符串。要将其转换为 int (我假设你想要这样做),请替换
mydata.append((code, name))
与
mydata.append((int(code), name))
最后,要将数据读入数据帧,您只需将 mydata
传递为
mydata_df = pandas.DataFrame(mydata)
进入数据框后,您可以更改列名称以适合您的用途。
mydata_df.columns = ['Code', 'Name']
然后,您将能够通过列名称访问各个列,例如mydata_df['Code']
或 mydata_df.Code
。
关于python - 打开具有多个空格的文件并保存为具有两个变量的数组/数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775211/