我有一个重新采样(下采样)问题应该很简单,但我无法做到! 这是一个简化的例子:
df:
Time A
0 0.01591 0.108929
1 0.27973 0.411764
2 0.55044 0.064253
3 0.81386 0.317394
4 1.07983 0.722707
5 1.35051 1.154193
6 1.61495 1.151492
7 1.88035 0.123389
8 2.15462 0.093583
9 2.41534 0.260944
10 2.67992 1.007564
11 2.95148 0.325353
12 3.21364 0.555593
13 3.47980 0.740621
15 4.01519 1.619669
16 4.28679 0.477371
17 4.55482 0.432049
18 4.81570 0.194224
19 5.07992 0.331936
时间列以秒为单位。我想将Time列作为索引,并将数据帧下采样为1s。请帮忙吗?
答案 0 :(得分:0)
您可以使用reindex
并选择一种填充方法
In [37]: df.set_index('Time').reindex(range(0,6), method='bfill')
Out[37]:
A
0 0.108929
1 0.722707
2 0.093583
3 0.555593
4 1.619669
5 0.331936
答案 1 :(得分:0)
首先将您的索引转换为日期时间格式:
df.index=pd.to_datetime(df.Time,unit='s')
然后是resample
秒(这是默认值的平均值,但可以更改为总和等 - 例如添加how='sum'
作为参数):
d.resample('S')
Time A
Time
1970-01-01 00:00:00 0.414985 0.225585
1970-01-01 00:00:01 1.481410 0.787945
1970-01-01 00:00:02 2.550340 0.421861
1970-01-01 00:00:03 3.346720 0.648107
1970-01-01 00:00:04 4.418125 0.680828
1970-01-01 00:00:05 5.079920 0.331936
如果重要,可以更改年份/日期。