4

我正在关注 Wes McKinney 关于使用 pandas/python 进行交易回测的教程(http://youtu.be/6h0IVlp_1l8)。
在 pd.read_csv(...) 之后,他使用 'dt' (datetime) 列作为数据帧的索引。

df.index = pd.to_datetime(df.pop('dt'))

但是,我的数据有 2 个单独的列,“日期 [G]”和“时间 [G]”,其中的数据类似于 04-JAN-2013,00:00:00.000(逗号分隔)。

我如何修改那行代码才能做到这一点?即在一个数据框中合并两列,然后将其删除。或者有没有办法在 read_csv 本身期间做到这一点?

感谢所有的答案。

4

1 回答 1

5

您应该能够使用 apply() 连接两列,然后使用 to_datetime()。要从数据框中删除列,请使用 drop() 或仅选择您需要的列:

df['dt'] = pd.to_datetime(df.apply(lambda x: x['Date[G]'] + ' ' + x['Time[G]'], 1))


df = df.drop(['Date[G]', 'Time[G]'], 1)
# ..or
# df = df[['dt', ...]]

df.set_index('dt', inplace = True)
于 2013-10-28T19:16:42.990 回答