如何在同一数据帧(Python、Pandas)中合并1中的2列?

如何在同一数据帧(Python、Pandas)中合并1中的2列?,python,pandas,Python,Pandas,下面是Wes McKinney关于使用pandas/python进行交易回溯测试()的教程。 在pd.read_csv(…)之后,他使用“dt”(datetime)列作为数据帧的索引 df.index = pd.to_datetime(df.pop('dt')) 但是,我的数据有两个单独的列,“日期[G]”和“时间[G]”,其中的数据类似于2013年1月4日,00:00:00.000(逗号分隔) 我如何修改这一行代码以达到同样的目的?即,在一个数据帧内合并两列,然后将其删除。或者在读取csv本

下面是Wes McKinney关于使用pandas/python进行交易回溯测试()的教程。
在pd.read_csv(…)之后,他使用“dt”(datetime)列作为数据帧的索引

df.index = pd.to_datetime(df.pop('dt'))
但是,我的数据有两个单独的列,“日期[G]”和“时间[G]”,其中的数据类似于2013年1月4日,00:00:00.000(逗号分隔)

我如何修改这一行代码以达到同样的目的?即,在一个数据帧内合并两列,然后将其删除。或者在读取csv本身的过程中有没有办法做到这一点


谢谢您的回答。

您应该能够使用apply()连接两列,然后使用to_datetime()。 要从dataframe中删除列,请使用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)

在提问之前,我诚恳地寻找答案,但直到我发布了帖子之后,我才在“相关”部分看到类似的问题,这里是:在我的例子中,答案似乎是:df=pd.read_csv(“%s%s.csv%”(股票,“_1min”),parse_dates={'timestamp':['Date[G]','Time[G]},index_col='timestamp',usecols=['Open','High','Low','Last','Date[G]','Time[G]]]