我正面临着一些本来应该很容易的事情的挑战,但是我似乎没有找到解决方法。
万一这可能是造成问题的原因,我的df
是通过减去另外两个数据帧而产生的,另外两个数据帧也都是在应用floor
之后通过过滤特定频率而产生的。具体来说,这是下面的代码:
df1 = frame.loc[frame.index.hour == 5,'values']
df1.index = df1.index.floor('d')
df2 = frame.loc[frame.index.hour == 22,'values']
df2.index = df2.index.floor('d')
df=df1-df2
Out[51]: df1
Out[51]:
datetime
2019-11-03 28.264286
2019-11-04 28.091429
2019-11-05 34.107143
2019-11-06 32.538571
2019-11-07 32.205714
2019-11-08 34.552857
2019-11-09 32.980000
2019-11-10 33.584286
2019-11-11 32.950000
2019-11-12 32.610000
Name: values,dtype: float64
Out[52]: df2
Out[52]:
datetime
2019-11-03 28.110000
2019-11-04 33.185714
2019-11-05 32.674286
2019-11-06 32.311429
2019-11-07 32.045714
2019-11-08 33.252857
2019-11-09 32.671429
2019-11-10 33.141429
2019-11-11 32.708571
Name: values,dtype: float64
In[48]: df
Out[48]:
datetime
2019-11-03 0.154286
2019-11-04 -5.094286
2019-11-05 1.432857
2019-11-06 0.227143
2019-11-07 0.160000
2019-11-08 1.300000
2019-11-09 0.308571
2019-11-10 0.442857
2019-11-11 0.241429
2019-11-12 NaN
Name: values,dtype: float64
但是,我希望df
看起来像这样:
Out[50]:
datetime
2019-11-03 00:00:00 0.154286
2019-11-04 00:00:00 -5.09429
2019-11-05 00:00:00 1.43286
2019-11-06 00:00:00 0.227143
2019-11-07 00:00:00 0.16
2019-11-08 00:00:00 1.3
2019-11-09 00:00:00 0.308571
2019-11-10 00:00:00 0.442857
2019-11-11 00:00:00 0.241429
2019-11-12 00:00:00 NaN
我一直在搜寻“熊猫式”方式,但没有发现令人满意的东西。因此,我尝试了这种方式,但是由于某种原因它没有起作用:
df['time']='00:00:00'
Out[50]:
datetime
2019-11-03 00:00:00 0.154286
2019-11-04 00:00:00 -5.09429
2019-11-05 00:00:00 1.43286
2019-11-06 00:00:00 0.227143
2019-11-07 00:00:00 0.16
2019-11-08 00:00:00 1.3
2019-11-09 00:00:00 0.308571
2019-11-10 00:00:00 0.442857
2019-11-11 00:00:00 0.241429
2019-11-12 00:00:00 NaN
time 00:00:00
...虽然我希望会出现一个新的列“ time”,然后将“ datetime”转换为字符串,将这两列连接在一起,然后再次将其转换为datetime类型。
有什么想法吗?与我认为的解决方法相比,我宁愿使用一种更为泛泛的方式。谢谢!
编辑:在任何人认为有必要的情况下添加
df.index
Out[78]:
DatetimeIndex(['2019-11-03','2019-11-04','2019-11-05','2019-11-06','2019-11-07','2019-11-08','2019-11-09','2019-11-10','2019-11-11','2019-11-12'],dtype='datetime64[ns]',name='datetime',freq=None)