这是我的文件.txt:
1, AC233FA28A31, -64, 1.0741886104850389
1, AC233FA28A32, -67, 4.990341223352587e+16
2, AC233FA28A31, -66, 1.240560004316543
2, AC233FA28A32, -61, 4190057960.7655835
3, AC233FA28A31, -64, 1.0741886104850389
3, AC233FA28A32, -65, 685898450406726.6
如何读取第三列并将数据保存在列表中?
Python代码的输出必须是这个列表=[-64,-67,-66,-61,-64….]
使用Pandas:可以轻松做到这一点
import pandas as pd
df = pd.read_csv('file.txt', sep='s+', header=None)
res = df[2].tolist()
print(res)
您的列表将保存在res中。
类似这样的东西:
with open('file.txt', 'r+') as file:
# split in lines
for line in file.read().split('n'):
# Parse the single lines
riga = line.split(',')
riga[0] = int(riga[0])
riga[1] = riga[1].strip()
riga[2] = int(riga[2])
riga[3] = int(riga[3])
lista.append(riga)
否则,如果您想将其作为数据帧处理,则应该使用pandas
Python的库,正如@Flavio所建议的那样。
试图使其易于理解:
with open(r"file.txt", "r") as f:
data = f.readlines()
third_column = []
for line in data:
value = line.split(",")[2].lstrip(" ")
third_column.append(value)
print(value)
首先,将文件的行读取到一个数组data
中,然后迭代每一行,用字符,
和line.split(",")
分割字符串,用[2]
选择第三个元素,用lstrip(" ")
再次将结果字符串的左侧去掉所有空格,将值附加到列表third_column
中,并打印值
您可以使用csv
执行此操作。
import csv
col1 = []
col2 = []
col3 = []
with open('file.txt') as f:
for row in csv.reader(f):
col1.append(row[0])
col2.append(row[1])
col3.append(float(row[2]))
print(col3)
如果您不想使用Pandas库,可以使用csv:
with open("myfile.txt") as file:
data= csv.reader(file)
my_list = []
for row in data:
my_list.append(int(row[2].strip()))
您可以使用panda和read_csv
。重要的是,您应该使用header=None
,因为file.txt
中没有可用的列名
import pandas as pd
df = pd.read_csv('file.txt', header=None)
# if you really want a list
out = list(df[2].values)