如何在不更改其他列的情况下重新采样一个“日期”列

时间:2019-03-19 15:28:05

标签: python-3.x pandas dataframe resampling

我正尝试在DF中仅对一列进行重新采样,而不更改另一列,因此这是所需的输出:

    Sensor_ID   Time_Instant    Measurement
0    14121    2013/11/14 00:00:00     0.8
1    14121    2013/11/14 03:00:00     0.6
2    14121    2013/11/14 06:00:00     0.4
3    14121    2013/11/14 09:00:00     0.4
4    14121    2013/11/14 12:00:00      0

这是我实际上拥有的:

    Sensor_ID   Time_Instant    Measurement
0    14121    2013/11/14 17:00    0.8
1    14121    2013/11/14 18:00    0.6
2    14121    2013/11/14 19:00    0.4
3    14121    2013/11/14 20:00    0.4
4    14121    2013/11/14 21:00     0

这是我的尝试:

Mi_Meteo.columns = pd.to_datetime(Mi_Meteo.columns ,errors='coerce' ) 
Mi_Meteo.resample('3H', on='Time_Instant').sum()

但是我得到这个错误:

'The grouper name Time_Instant is not found'

有什么建议吗? ,谢谢你。

1 个答案:

答案 0 :(得分:0)

据我了解,您只是想增加时间(减少采样)而不影响其他值。如果是这样,您将需要在最后填充新的时间。我使用了NaN个。一旦长度相同,就可以替换原始列。

import numpy as np 

new = df.set_index('Time_Instant').resample('3H').count().index
df['Time_Instant'] = np.pad(new, (0,len(df) - len(new)), 'constant', 
                            constant_values=(0,np.nan))