【发布时间】:2020-04-20 19:40:21
【问题描述】:
我有一个带有多索引的数据框,我想将其转换为date() 索引。
这是我拥有的数据帧类型的示例模拟:
i = pd.date_range('01-01-2016', '01-01-2020')
x = pd.DataFrame(index = i, data=np.random.randint(0, 10, len(i)))
x = x.groupby(by = [x.index.year, x.index.month]).sum()
print(x)
我尝试通过以下方式将其转换为日期索引:
def to_date(ind):
return pd.to_datetime(str(ind[0]) + '/' + str(ind[1]), format="%Y/%m").date()
# flattening the multiindex to tuples to later reset the index
x.set_axis(x.index.to_flat_index(), axis=0, inplace = True)
x = x.rename(index = to_date)
x.set_axis(pd.DatetimeIndex(x.index), axis=0, inplace=True)
但是速度很慢。我认为问题出在pd.to_datetime(str(ind[0]) + '/' + str(ind[1]), format="%Y/%m").date() 行。非常感谢任何让这更快的想法。
【问题讨论】:
标签: python python-3.x pandas datetime multi-index