Python 如何在pandas中比较dataframe中的日期时间索引

Python 如何在pandas中比较dataframe中的日期时间索引,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧。 第一个 df1 = pd.read_csv('t1.txt',delimiter="\t", parse_dates = True, index_col = 'Date') Date 4001 4002 4003 4004 4005 2017-01-01 151902 2755 0 0 0 2017-01-02 157271

我有两个数据帧。 第一个

df1 = pd.read_csv('t1.txt',delimiter="\t", parse_dates = True, index_col = 'Date')

Date  4001  4002  4003  4004  4005                                                                 
2017-01-01  151902  2755  0  0  0
2017-01-02  157271  143598  2343  0  0
2017-01-03  95806  138308  126034  2034  0
2017-01-04  68874  91469  129751  116066  1822
第二个呢

df2 = pd.read_excel('gg.xlsx', parse_dates = True, index_col='Date')  
Date  num  value
2017-01-01  4001  68
2017-01-02  4002  621
2017-01-03  4003  8
2017-01-04  4004  5
2017-01-05  4005  5
下面是一些元代码样式: 如您所见,df1.columns和df2['num']是同一个实体。 df1有错误,我想修复数据。如果相对df1.column的df1.Date小于df2.Date,则需要将df1.values设置为0,对于4001、4002等,则为df2.num

如何比较数据帧中的索引日期时间类型?

IIUC

v=df1.melt('Date')
v.variable=v.variable.astype(int)
s=v.merge(df2,left_on='variable',right_on='num',how='left')

v.loc[s.Date_x<s.Date_y,'value']=0

v.set_index(['Date','variable']).unstack()
Out[1211]:
             value
variable      4001    4002    4003    4004 4005
Date
2017-01-01  151902       0       0       0    0
2017-01-02  157271  143598       0       0    0
2017-01-03   95806  138308  126034       0    0
2017-01-04   68874   91469  129751  116066    0

谢谢你的功能融化和取消堆叠。在将Datetime索引转换为id_vars时遇到一些问题,但现在一切都好了。@DaurenSergazin很高兴我能帮忙,很高兴编码
v=df1.melt('Date')
v.variable=v.variable.astype(int)
s=v.merge(df2,left_on='variable',right_on='num',how='left')

v.loc[s.Date_x<s.Date_y,'value']=0

v.set_index(['Date','variable']).unstack()
Out[1211]:
             value
variable      4001    4002    4003    4004 4005
Date
2017-01-01  151902       0       0       0    0
2017-01-02  157271  143598       0       0    0
2017-01-03   95806  138308  126034       0    0
2017-01-04   68874   91469  129751  116066    0