重新采样时间序列-Python

问题描述

我正在尝试重新采样时间序列。我似乎无法正常工作。根据其他示例,我不明白为什么它没有返回时间序列:

df1 = pd.DataFrame({'Time': ['2019-08-02 09:50:10.100','2019-08-02 09:50:10.200','2019-08-02 09:50:10.400''2019-08-02 09:50:10.100','2019-08-02 09:50:10.400'],'Object': ['A','A','B','B'],})

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

df1 = df1.set_index(['Time']).resample('100ms')

print(df1)

出局:

DatetimeIndexResampler [freq=<100 * Millis>,axis=0,closed=left,label=left,convention=start,base=0]

预期输出

                     Time Object
0 2019-08-02 09:50:10.100      A
1 2019-08-02 09:50:10.200      A
2 2019-08-02 09:50:10.300      Nan
3 2019-08-02 09:50:10.400      A
4 2019-08-02 09:50:10.100      B
5 2019-08-02 09:50:10.200      B
6 2019-08-02 09:50:10.300      Nan
7 2019-08-02 09:50:10.400      B

解决方法

我相信您想要做的是:

apiVersion: v1
kind: Service
metadata:
  name: databaker-users-db
spec:
  ports:
  - ...
  - ...
  selector: <-- check here

输出为:

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

df1.set_index(['Time'],inplace = True)
df1.groupby("Object").resample("100ms").asfreq()

您现在可以根据需要删除索引的第一级:

                               Object
Object Time                          
A      2019-08-02 09:50:10.100      A
       2019-08-02 09:50:10.200      A
       2019-08-02 09:50:10.300    NaN
       2019-08-02 09:50:10.400      A
B      2019-08-02 09:50:10.100      B
       2019-08-02 09:50:10.200      B
       2019-08-02 09:50:10.300    NaN
       2019-08-02 09:50:10.400      B

输出:

df1 = df1.groupby("Object").resample("100ms").asfreq()
df1.index = df1.index.droplevel(0)