2013-10-25 45 views
4

我正在关注使用熊猫/ python进行交易回溯测试的Wes McKinney教程(http://youtu.be/6h0IVlp_1l8)。
在pd.read_csv(...)之后,他使用'dt'(日期时间)列作为数据帧的索引。如何合并同一数据框(Python,Pandas)中的2列?

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

然而,我的数据有2个单独的列, '日期[G]' 和 '时间[G]' 和里面的数据是一样的东西04-JAN-2013,00:00:00.000(逗号隔开)。

如何修改该行代码以实现相同?即在一个数据框内合并两列,然后删除它。或者有没有办法在read_csv本身执行该操作?

感谢您的所有答案。

+0

老实说,我看了回答提问前,我已经发布但只有后,我看到了类似的问题,在“相关”部分,在这里它是︰http://stackoverflow.com/questions/18115222/how-to-merge-two-dataframe-columns-and-apply-pandas-to-datetime-to-it?rq=1 所以在我的情况下答案似乎是: df = pd.read_csv('%s%s.csv'%(stock,'_1min'), parse_dates = {'timestamp':['Date [G]','Time [G ]']}, index_col ='timestamp', usecols = ['Open','High','Low','Last','Date [G]','T IME [G] '])' – danilam

回答

5

您应该可以使用apply()连接两列,然后使用to_datetime()。 要删除数据框使用降()或列你只需要选择列:

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) 
相关问题