有没有比csv.DictReader更好的方法来编译来自多个文件的列数据?

时间:2019-05-15 18:32:12

标签: python csv matplotlib histogram

前言:我对这项工作非常陌生(如上周刚开始),所以如果我表现出绿色,我要提前道歉。

我有3个单独的大数据文件,分别表示不同时间点的特定距离。每个文件占总时间的三分之一,分为53列,第一列是时间戳记,另外52列分别是所测量的不同距离,分别命名为01A,01B,02A,02B等。目标是创建一个直方图,将所有三个文件的每个距离(例如01A)的数据合并在一起。

我想出了这个选项,它非常适合我制作的较小的示例数据文件:

import csv 
import matplotlib.pyplot as plt 
Countries = []
with open("python_practice.txt", "r") as csv_file: 
    csv_file.readline()[1:]
    csv_reader = csv.DictReader(csv_file, delimiter='\t') 
    for lines in csv_reader:
        Country = lines['country'] 
        Countries.append(Country)
with open("python_practice1.txt", "r") as csv_file1: 
    csv_reader1 = csv.DictReader(csv_file1, delimiter='\t')
    for lines in csv_reader1: 
        Country1 = lines['country']
        Countries.append(Country1)

data = Countries
plt.hist(data, bins='auto')

但是,当我尝试通过以下方式使它仅用于单个实际数据文件时:

import csv 
import matplotlib.pyplot as plt 

Distances = []
with open("distances_1.traj", "r") as csv_file: 
    csv_file.readline()[1:]
    csv_reader = csv.DictReader(csv_file, delimiter='\t') 
    for lines in csv_reader:
        Distance = lines['01A'] 
        Distances.append(Distance)

data = Distances
plt.hist(data, bins='auto')

我收到一个KeyError:'01A'

我不确定DictReader为什么无法“识别”列名01A,或者如何解决此问题。因此,欢迎在这里提出任何建议。

0 个答案:

没有答案