How to resample using forward fill python

前端 未结 1 927
庸人自扰
庸人自扰 2021-01-27 12:03

My Dataframe df3 looks something like this:

    Id           Timestamp         Data    Group_Id    
0    1     2018-01-01 00:00:05.523 125.5   101 
1    2     20         


        
相关标签:
1条回答
  • 2021-01-27 12:44

    This error is caused because of the following:

        Id           Timestamp         Data    Group_Id    
    0    1     2018-01-01 00:00:05.523 125.5   101 
    1    2     2018-01-01 00:00:05.757 125.0   101 
    

    When you resample both these timestamps to the nearest second they both become 2018-01-01 00:00:06 and pandas doesn't know which value for the data to pick because it has two to select from. Instead what you can do is use an aggregation function such as last (though mean, max, min may also be suitable) in order to select one of the values. Then you can apply the forward fill.

    Example:

    from io import StringIO
    import pandas as pd
    df = pd.read_table(StringIO("""    Id           Timestamp         Data    Group_Id    
    0    1     2018-01-01 00:00:05.523  125.5   101 
    1    2     2018-01-01 00:00:05.757  125.0   101 
    2    3     2018-01-02 00:00:09.507  127.0   52  
    3    4     2018-01-02 00:00:13.743  126.5   52  
    4    5     2018-01-03 00:00:15.407  125.5   50"""), sep='\s\s+')
    df['Timestamp'] = pd.to_datetime(df['Timestamp']).dt.round('s')
    df.set_index('Timestamp', inplace=True)
    df = df.resample('1S').last().ffill()
    
    0 讨论(0)
提交回复
热议问题