1

I have a dataframe with data that I obtained from a device, so that timestamp is not at exact seconds. Like below:

                            hr                                                                                                                       
timestamp                                                                                                                                            
2022-11-02 20:23:20.850611  72                                                                                                                       
2022-11-02 20:23:21.868609  71                                                                                                                       
2022-11-02 20:23:22.932606  71                                                                                                                       
2022-11-02 20:23:24.057612  72                                                                                                                       
2022-11-02 20:23:25.182701  71                                                                                                                       
2022-11-02 20:23:25.932692  74                                                                                                                       
2022-11-02 20:23:27.057694  72                                                                                                                       
2022-11-02 20:23:28.182689  72                                                                                                                       
2022-11-02 20:23:28.932730  72                                                                                                                       
2022-11-02 20:23:30.057686  71                                                                                                                       
2022-11-02 20:23:31.182692  69                                                                                                                       
2022-11-02 20:23:31.932689  68                                                                                                                       
2022-11-02 20:23:33.057890  67                                                                                                                       
2022-11-02 20:23:34.182879  68                                                                                                                       
2022-11-02 20:23:34.932871  68                                                                                                                       
2022-11-02 20:23:36.057870  66                                                                                                                       
2022-11-02 20:23:37.182873  68                                                                                                                       
2022-11-02 20:23:37.933040  72                                                                                                                       
2022-11-02 20:23:39.058044  73                                                                                                                       
2022-11-02 20:23:40.183046  78                                                                                                                       
2022-11-02 20:23:40.959045  84                                                                                                                       
2022-11-02 20:23:42.058044  84                                                                                                                       
2022-11-02 20:23:43.183052  75                                                                                                                       
2022-11-02 20:23:43.936050  73                                                                                                                       
2022-11-02 20:23:45.058047  81  

I tried to resample with code below:

df_resamp = df.resample('250ms').interpolate('cubic')
print(df_resamp.head(30))

But the result whas like below:

timestamp                                                                                                                                            
2022-11-02 20:23:20.750 NaN                                                                                                                          
2022-11-02 20:23:21.000 NaN                                                                                                                          
2022-11-02 20:23:21.250 NaN                                                                                                                          
2022-11-02 20:23:21.500 NaN                                                                                                                          
2022-11-02 20:23:21.750 NaN                                                                                                                          
2022-11-02 20:23:22.000 NaN                                                                                                                          
2022-11-02 20:23:22.250 NaN                                                                                                                          
2022-11-02 20:23:22.500 NaN                                                                                                                          
2022-11-02 20:23:22.750 NaN                                                                                                                          
2022-11-02 20:23:23.000 NaN                                                                                                                          
2022-11-02 20:23:23.250 NaN                                                                                                                          
2022-11-02 20:23:23.500 NaN                                                                                                                          
2022-11-02 20:23:23.750 NaN                                                                                                                          
2022-11-02 20:23:24.000 NaN                                                                                                                          
2022-11-02 20:23:24.250 NaN                                                                                                                          
2022-11-02 20:23:24.500 NaN                                                                                                                          
2022-11-02 20:23:24.750 NaN                                                                                                                          
2022-11-02 20:23:25.000 NaN                                                                                                                          
2022-11-02 20:23:25.250 NaN                                                                                                                          
2022-11-02 20:23:25.500 NaN                                                                                                                          
2022-11-02 20:23:25.750 NaN                                                                                                                          
2022-11-02 20:23:26.000 NaN                                                                                                                          
2022-11-02 20:23:26.250 NaN                                                                                                                          
2022-11-02 20:23:26.500 NaN                                                                                                                          
2022-11-02 20:23:26.750 NaN                                                                                                                          
2022-11-02 20:23:27.000 NaN                                                                                                                          
2022-11-02 20:23:27.250 NaN                                                                                                                          
2022-11-02 20:23:27.500 NaN                                                                                                                          
2022-11-02 20:23:27.750 NaN                                                                                                                          
2022-11-02 20:23:28.000 NaN 

I wanted to resample to obtain estimated values at exact seconds and with 250 ms resolution. Why did it happen?

  • Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. – Community Nov 12 '22 at 20:34

1 Answers1

0

You first need to chose a method to resample, then interpolate the gaps:

df_resamp = df.resample('250ms').mean().interpolate('cubic')
print(df_resamp.head(30))

Output:

                                hr
timestamp                         
2022-11-02 20:23:20.750  72.000000
2022-11-02 20:23:21.000  71.738699
2022-11-02 20:23:21.250  71.469228
2022-11-02 20:23:21.500  71.215142
2022-11-02 20:23:21.750  71.000000
...
2022-11-02 20:23:27.750  71.855097
2022-11-02 20:23:28.000  72.000000

Intermediate:

df.resample('250ms').mean()

                           hr
timestamp                    
2022-11-02 20:23:20.750  72.0
2022-11-02 20:23:21.000   NaN
2022-11-02 20:23:21.250   NaN
2022-11-02 20:23:21.500   NaN
2022-11-02 20:23:21.750  71.0
...
2022-11-02 20:23:27.750   NaN
2022-11-02 20:23:28.000  72.0
mozway
  • 194,879
  • 13
  • 39
  • 75