重新采样并填充df-熊猫

时间:2019-10-25 02:37:47

标签: pandas sample

我希望对df重新采样并填充未指定的行。以下是我目前正在做的事情

d1 = ({   
    'Time' : ['2019-08-02 09:50:11.5','2019-08-02 09:50:11.6','2019-08-02 09:50:11.8','2019-08-02 09:50:12.0','2019-08-02 09:50:11.5','2019-08-02 09:50:11.6','2019-08-02 09:50:11.8','2019-08-02 09:50:12.0'],
    'Value' : ['A','A','A','A','B','B','B','B'],
   })

df1 = pd.DataFrame(data=d1)

df1['Time'] = pd.to_datetime(df1['Time'])

df1['Time'] = df1.set_index('Time').resample('0.1S').ffill().reset_index()

出局:

  

ValueError:无法从重复的轴重新索引

预期:

                    Time Value
0  2019-08-02 09:50:11.5     A
1  2019-08-02 09:50:11.6     A
2  2019-08-02 09:50:11.7     A
3  2019-08-02 09:50:11.8     A
4  2019-08-02 09:50:11.9     A
5  2019-08-02 09:50:12.0     A                        
6  2019-08-02 09:50:11.5     B
7  2019-08-02 09:50:11.6     B
8  2019-08-02 09:50:11.7     B
9  2019-08-02 09:50:11.8     B
10  2019-08-02 09:50:11.9     B
11  2019-08-02 09:50:12.0     B

1 个答案:

答案 0 :(得分:2)

使用groupbyasfreq()进行上采样

d1 = ({   
    'Time' : ['2019-08-02 09:50:11.5','2019-08-02 09:50:11.6','2019-08-02 09:50:11.8','2019-08-02 09:50:12.0','2019-08-02 09:50:11.5','2019-08-02 09:50:11.6','2019-08-02 09:50:11.8','2019-08-02 09:50:12.0'],
    'Value' : ['A','A','A','A','B','B','B','B'],
   })

df1 = pd.DataFrame(data=d1)

df1['Time'] = pd.to_datetime(df1['Time'])

df1 = df1.set_index('Time')

df1 = df1.groupby('Value', group_keys=False).resample('0.1S').asfreq().ffill().reset_index()

df1

Out[1]: 
                      Time Value
0  2019-08-02 09:50:11.500     A
1  2019-08-02 09:50:11.600     A
2  2019-08-02 09:50:11.700     A
3  2019-08-02 09:50:11.800     A
4  2019-08-02 09:50:11.900     A
5  2019-08-02 09:50:12.000     A
6  2019-08-02 09:50:11.500     B
7  2019-08-02 09:50:11.600     B
8  2019-08-02 09:50:11.700     B
9  2019-08-02 09:50:11.800     B
10 2019-08-02 09:50:11.900     B
11 2019-08-02 09:50:12.000     B