【发布时间】:2021-01-14 11:44:33
【问题描述】:
我需要使用“modin”数据帧,它不适用于多索引(有时我会 df.reindex(idx),其中 idx 是多级索引), 所以: 如何将多索引转换为单索引? (将两个级别合并在一起)
最小样本:
import pandas as pd
idx = pd.DatetimeIndex(['2019-07-17 22:43:00',
'2019-07-17 22:44:00',
'2019-07-17 22:45:00',
'2019-07-17 22:46:00',
'2019-07-17 22:47:00',
'2019-07-17 22:48:00',
'2019-07-17 22:49:00',
'2019-07-17 22:50:00',
'2019-07-17 22:51:00',
'2019-07-17 22:52:00',
'2019-07-23 22:33:00',
'2019-07-23 22:34:00',
'2019-07-23 22:35:00',
'2019-07-23 22:36:00',
'2019-07-23 22:37:00',
'2019-07-23 22:38:00',
'2019-07-23 22:39:00',
'2019-07-23 22:40:00',
'2019-07-23 22:41:00',
'2019-07-23 22:42:00'] )
idx = pd.MultiIndex.from_tuples(zip( idx.date, idx.time))
dates_new = idx.get_level_values(0).unique()
times_new = idx.get_level_values(1).unique()
idx = pd.MultiIndex.from_product([dates_new,times_new])
idx = pd.DatetimeIndex(idx)
print(idx)
以下工作,但有什么方法可以加快速度(在大型数据集上)?
[datetime.datetime.combine(date,time) for date,time in idx.values]
【问题讨论】:
-
你为什么使用多索引?
-
@NYCCoder 需要提取一些日期
-
@NYCCoder 也删除了一些白天和特定日期。
标签: python pandas datetime multi-index datetimeindex