Я пытаюсь использовать списки для получения определенных столбцов из CSV-файла.
Вот код, который имитирует данные файла CSV, которые я вижу:
import pandas as pd
import numpy as np
# Setup of simulated data
seconds = [1,2,3]
values = [0.5,0.4,0.3]
non_relevant_data = [8,6,7]
nanos = [5757,6767,7777]
dataset=list(zip(seconds,values,non_relevant_data,nanos))
df = pd.DataFrame(data=dataset)
df.to_csv('data.csv',index=False,header=False,name=None)
table=pd.read_csv('data.csv',header=None).itertuples(index=False,name=None)
Вот что я пытаюсь сделать:
# Getting each column in the table using list comprehensions
secs = np.array([row[0] for row in table])
vals = np.array([row[1] for row in table])
nano = np.array([row[3] for row in table])
print secs
print vals
print nano
Вот результат:
[1 2 3]
[]
[]
Если я закомментирую объект понимания списка секунд и оставлю переменные vals и nano без комментариев, это будет результат:
[0.5 0.4 0.3]
[]
Если я использую цикл for и pre-определить secs, vals и nano-массивы, я могу заставить код работать, но это не очень элегантно.
Я тоже попробовал это, не используя numpy, но это дало тот же результат.
Я очень запутался, почему в этой конфигурации не работают описания списков.
Может кто-нибудь объяснить, почему это не работает, или порекомендовать что-нибудь еще попробовать?
Спасибо