Python 熊猫:将带有DatetimeIndex的列表目录转换为DataFrame

Python 熊猫:将带有DatetimeIndex的列表目录转换为DataFrame,python,pandas,Python,Pandas,我需要熊猫专家的帮助:) 我需要从包含两个DateTimeIndex作为值的列表的字典中高效地创建DataFrame 以下是此类词典的简短示例: import pandas as pd d = { 871:[pd.date_range('20180131', '20180331', freq='M', normalize=True), pd.date_range('20180228', '20180430', freq='M', normalize=True)], 872

我需要熊猫专家的帮助:) 我需要从包含两个DateTimeIndex作为值的列表的字典中高效地创建DataFrame

以下是此类词典的简短示例:

import pandas as pd

d = {
  871:[pd.date_range('20180131', '20180331', freq='M', normalize=True),
       pd.date_range('20180228', '20180430', freq='M', normalize=True)],
  872:[pd.date_range('20180228', '20180331', freq='M', normalize=True),
       pd.date_range('20180331', '20180430', freq='M', normalize=True)]}

d
Out[3]: 
{871: [DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31'], dtype='datetime64[ns]', freq='M'),
  DatetimeIndex(['2018-02-28', '2018-03-31', '2018-04-30'], dtype='datetime64[ns]', freq='M')],
 872: [DatetimeIndex(['2018-02-28', '2018-03-31'], dtype='datetime64[ns]', freq='M'),
  DatetimeIndex(['2018-03-31', '2018-04-30'], dtype='datetime64[ns]', freq='M')]}
我想要得到的是一个数据帧,其中dict键用作索引,两个pd.Timestamp列对应于上面的两个datetimeindex

下面是它的外观:

result_df
Out[6]: 
         Start        End
871 2018-01-31 2018-02-28
871 2018-02-28 2018-03-31
871 2018-03-31 2018-04-30
872 2018-02-28 2018-03-31
872 2018-03-31 2018-04-30
p.S. 实际任务是将具有日期范围的大型数据框(如下面所示)拆分为单个月

df_original
Out[19]: 
           Start        End
Index                      
871   2018-01-31 2018-02-28
872   2018-02-28 2018-04-30
大的是几十万行

使用:

d1 = {k: pd.DataFrame(list(zip(*v)), columns=['Start','End']) for k, v in d.items()}
df = pd.concat(d1).reset_index(level=1, drop=True)
print (df)
         Start        End
871 2018-01-31 2018-02-28
871 2018-02-28 2018-03-31
871 2018-03-31 2018-04-30
872 2018-02-28 2018-03-31
872 2018-03-31 2018-04-30

它目前的实现方式几乎与此完全相同。是否有一些不在dict项上循环构建数据帧的选项?@AlexanderM.-我想不是。