2017-02-21 70 views
1

我有熊猫一个多指标,看起来像由下面的代码生成一个:转换大熊猫多指标为datetime格式

arrays = [[2001, 2001, 2003, 2004], ['January', 'March', 'June', 'December']] 
tuples= list(zip(*arrays)) 
index = pd.MultiIndex.from_tuples(tuples, names=['year', 'month']) 

我想这个指标转换为单个日期时间指数。我试过使用

pd.to_datetime(index, format="%Y %B") 

但它给了我一个错误。

请问您能否以最有效的方式提供一些帮助?

感谢

回答

1

您可以使用map第一:

idx = index.map(lambda x: ''.join((str(x[0]), x[1]))) 
print (idx) 
['2001January' '2001March' '2003June' '2004December'] 

print (pd.to_datetime(idx, format="%Y%B")) 
DatetimeIndex(['2001-01-01', '2001-03-01', '2003-06-01', '2004-12-01'], 
       dtype='datetime64[ns]', freq=None) 

另一种解决方案:

idx = index.map(lambda x: '{}{}'.format(x[0], x[1])) 
print (idx) 
['2001January' '2001March' '2003June' '2004December'] 

或者list comprehension解决方案:

idx = ['{}{}'.format(x[0], x[1]) for x in index] 
print (idx) 
['2001January', '2001March', '2003June', '2004December']