Есть ли лучший способ для компиляции данных столбца из нескольких файлов, чем csv.DictReader? - PullRequest
1 голос
/ 15 мая 2019

Предисловие: я очень новичок в этой работе (как только что начался на прошлой неделе), поэтому заранее прошу прощения, если проявится моя зеленость.

У меня есть 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')

Я получаю ключевую ошибку: '01A'

Я не уверен, почему DictReader не может «распознать» имя столбца 01A или как решить эту проблему. Так что любые советы здесь приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...