Я хотел использовать метод numpy loadtxt , чтобы прочитать .csv
файлы для моего эксперимента.У меня есть три разных данных временных рядов следующего формата с разными характеристиками, где первый столбец является меткой времени, а второй столбец является значением.
0.086206438,10
0.086425551,12
0.089227066,20
0.089262508,24
0.089744425,30
0.090036815,40
0.090054172,28
0.090377569,28
0.090514071,28
0.090762872,28
0.090912691,27
Для воспроизводимости я поделился данными трех временных рядовЯ использую здесь .
Если я сделаю это, как показано ниже
import numpy as np
fname="data1.csv"
col_time,col_window = np.loadtxt(fname,delimiter=',').T
Он работает нормально, как и предполагалось.Однако вместо того, чтобы читать только один файл, я хочу передать словарь в col_time,col_window = np.loadtxt(types,delimiter=',').T
как следующий
protocols = {}
types = {"data1": "data1.csv", "data2": "data2.csv", "data3": "data3.csv"}
, чтобы я мог прочитать несколько файлов csv
и построить графиквсе результаты в единицах, использующих один for loop
, как показано ниже.
for protname, fname in types.items():
col_time, col_window = protocols[protname]["col_time"], protocols[protname]["col_window"]
rt = np.exp(np.diff(np.log(col_window)))
plt.plot(quotient_times, quotient, ".", markersize=4, label=protname)
plt.title(protname)
plt.xlabel("t")
plt.ylabel("values")
plt.legend()
plt.show()
Но это дает мне ошибку ValueError: could not convert string to float: b'data1'
.Как я могу загрузить несколько csv
файлов в качестве словаря?