![](/img/trans.png)
[英]In python pandas, how can I re-sample and interpolate a DataFrame?
[英]Re-sample df to microsecond - Pandas
我正在尝试重新采样 df 中的时间戳以每 0.1 秒显示一次。 它正在重新采样,但我丢失了与这些时间戳相关的数据。
d = ({
'Time' : ['2010-07-27 09:25:31.1','2010-07-27 09:25:31.2','2010-07-27 09:25:31.4','2010-07-27 09:25:31.5','2010-07-27 09:25:31.6','2010-07-27 09:25:31.9','2010-07-27 09:25:32.0'],
'Area' : ['A','A','A','A','A','A','A',],
})
df = pd.DataFrame(data=d)
df = df.set_index('Time').asfreq('0.1S').reset_index()
出去:
Time Area
0 2010-07-27 09:25:31.100 NaN
1 2010-07-27 09:25:31.200 NaN
2 2010-07-27 09:25:31.300 NaN
3 2010-07-27 09:25:31.400 NaN
4 2010-07-27 09:25:31.500 NaN
5 2010-07-27 09:25:31.600 NaN
6 2010-07-27 09:25:31.700 NaN
7 2010-07-27 09:25:31.800 NaN
8 2010-07-27 09:25:31.900 NaN
9 2010-07-27 09:25:32.000 NaN
故意的:
0 2010-07-27 09:25:31.100 A
1 2010-07-27 09:25:31.200 A
2 2010-07-27 09:25:31.300 NaN
3 2010-07-27 09:25:31.400 A
4 2010-07-27 09:25:31.500 A
5 2010-07-27 09:25:31.600 A
6 2010-07-27 09:25:31.700 Nan
7 2010-07-27 09:25:31.800 NaN
8 2010-07-27 09:25:31.900 A
9 2010-07-27 09:25:32.000 A
您可以执行以下操作。 首先,您需要确保您的列在datetime64[ns]
中,然后在该列上使用resample
df['Time']=pd.to_datetime(df['Time'])
df.set_index('Time').resample('0.1S').last().fillna(0).reset_index()
Output
Time Area
0 2010-07-27 09:25:31.100 A
1 2010-07-27 09:25:31.200 A
2 2010-07-27 09:25:31.300 0
3 2010-07-27 09:25:31.400 A
4 2010-07-27 09:25:31.500 A
5 2010-07-27 09:25:31.600 A
6 2010-07-27 09:25:31.700 0
7 2010-07-27 09:25:31.800 0
8 2010-07-27 09:25:31.900 A
9 2010-07-27 09:25:32.000 A
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.