Python Pandas-如何使用DateTimeIndex列表中的索引添加新的空行?

Python Pandas-如何使用DateTimeIndex列表中的索引添加新的空行?,python,pandas,datetimeindex,Python,Pandas,Datetimeindex,对不起,我有点卡住了 我想使用来自数据帧中一列的DateTimeIndex在另一个数据帧中创建新行 这些DateTimeIndex必须用作新行的索引 因此,根据以下数据: import pandas as pd df = pd.DataFrame({'Start': [pd.Timestamp('1970-01-02 00:00:00'),pd.Timestamp('1970-03-02 00:00:00')], 'End': [pd.Timestamp('1970-01-02 00:10:0

对不起,我有点卡住了

我想使用来自数据帧中一列的DateTimeIndex在另一个数据帧中创建新行

这些DateTimeIndex必须用作新行的索引

因此,根据以下数据:

import pandas as pd

df = pd.DataFrame({'Start': [pd.Timestamp('1970-01-02 00:00:00'),pd.Timestamp('1970-03-02 00:00:00')], 'End': [pd.Timestamp('1970-01-02 00:10:00'), pd.Timestamp('1970-03-02 00:10:00')], 'Freq': [pd.Timedelta(5,'m'),pd.Timedelta(5,'m')]})
df = df.apply(lambda x: pd.date_range(start = x.Start, end = x.End, freq = x.Freq), axis=1)

df2 = pd.DataFrame({'Timestamp':[pd.Timestamp('1970-01-03 00:00:00')], 'Data':[4]}).set_index('Timestamp')
我得到了以下信息:

In [62]: df2.index
Out[62]: DatetimeIndex(['1970-01-03'], dtype='datetime64[ns]', name='Timestamp', freq=None)

In[63]: df.to_list()
Out[21]: 
[DatetimeIndex(['1970-01-02 00:00:00', '1970-01-02 00:05:00',
                '1970-01-02 00:10:00'],
               dtype='datetime64[ns]', freq='5T'),
 DatetimeIndex(['1970-03-02 00:00:00', '1970-03-02 00:05:00',
                '1970-03-02 00:10:00'],
               dtype='datetime64[ns]', freq='5T')]
我想要得到的是一个基于df2的数据帧,具有新行,具有来自df的时间戳

df2_new
                    Data
Timestamp       
1970-01-03 00:00:00    4
1970-01-02 00:00:00
1970-01-02 00:05:00
1970-01-02 00:10:00
1970-03-02 00:00:00
1970-03-02 00:05:00
1970-03-02 00:10:00
我尝试使用以下行,但出现错误:

df2.reindex(df2.index.to_list() + df.to_list())

TypeError: unhashable type: 'DatetimeIndex'
我给出的示例被简化为df只有一行,但它可以有多行

拜托,你知道我该怎么做吗

提前感谢您的帮助! 晚上好,
最好的

IIUC,您可以稍微不同地定义“时间范围”,但关键步骤是使用:

输出:

                     Data
1970-01-02 00:00:00   NaN
1970-01-02 00:05:00   NaN
1970-01-02 00:10:00   NaN
1970-01-03 00:00:00   4.0

你好,斯科特,非常感谢你的回答。唉,df可以有几行。让我们考虑一个第二行:DF=Pd。DataFrame({开始):[时间戳(19701-01-0:00:00)],Pd。时间戳(‘1970-03-0:00:00’00)〕:[Pd。时间戳('19701-01-0:10:00)],Pd。时间戳('19703-03-0:10:00)],'Frq':[Pd。TimeDelad(5,I'),Pd。TimeDelad(5,I')] },然后,我尝试了你的代码,但是迭代了TimeRange,但它不起作用:对于timerange.stack()中的i:df2=df2.reindex(df2.index.union(i)),我得到以下错误:TypeError:输入必须是索引或数组,就像df重叠中的时间范围记录一样?但是,如果要单独选择每个时间范围,则需要换行[]以使其成为一个列表。就像我在时间范围内的代码:df2=df2.reindex(df2.index.union([i]))Scott,这太棒了!我按照建议把它包在[]里,效果很好!谢谢(我已经修改了上面的输入,以反映df中的第二行以及我想要的结果。你理解正确,太棒了!谢谢!
                     Data
1970-01-02 00:00:00   NaN
1970-01-02 00:05:00   NaN
1970-01-02 00:10:00   NaN
1970-01-03 00:00:00   4.0