我有多个csv文件,每个文件包含两列。第一列包含时间戳,第二列包含测量值。
让我们假设csv文件看起来像这样:
Date,Temperature (Celsius)
2018-07-24T20:45:31,28.86
2018-07-24T20:35:31,29.06
2018-07-24T20:25:31,29.19
2018-07-24T20:15:32,29.31
2018-07-24T20:05:31,29.48
2018-07-24T19:55:31,29.58
2018-07-24T19:45:31,29.82
2018-07-24T19:35:32,30.32
2018-07-24T19:25:31,31.00
我这样导入它:
df = pd.read_csv(csv-file, sep=',', header = 0, usecols=[0, 1], parse_dates=[0], infer_datetime_format=True)
dd = df.set_index('Date').T.to_dict()
我想以后方便,当我在多个文件中搜索相同的键(相同的时间戳)以合并它们时。 但是我无法访问字典。键被识别为时间戳。
dd.keys()
dict_keys([Timestamp('2018-07-24 20:45:31'), Timestamp('2018-07-24 20:35:31'), Timestamp('2018-07-24 20:25:31'), Timestamp('2018-07-24 20:15:32'), Timestamp('2018-07-24 20:05:31'), Timestamp('2018-07-24 19:55:31'), Timestamp('2018-07-24 19:45:31'), Timestamp('2018-07-24 19:35:32'), Timestamp('2018-07-24 19:25:31')])
如何访问值?
dd["2018-07-24 20:45:31"]["Temperature (Celsius)"]
不起作用,所以我尝试了
dd[Timestamp("2018-07-24 20:45:31")]["Temperature (Celsius)"]
也不起作用。
我想知道是否可以禁止使用时间戳作为键,但是如果不是,那么我该如何访问数据?
答案 0 :(得分:1)
您看到的每个Timestamp
键都是pandas.Timestamp
的实例。您应该使用pd.Timestamp
传递密钥,如下所示:
import pandas as pd
df = pd.read_csv(
'file.csv', sep=',', header = 0, usecols=[0, 1], parse_dates=[0], infer_datetime_format=True
)
dd = df.set_index('Date').T.to_dict()
print(dd[pd.Timestamp('2018-07-24 20:45:31')]['Temperature (Celsius)']) # prints 28.86