【发布时间】:2021-04-15 06:05:14
【问题描述】:
我有一个 CSV 文件,用于存储来自不同智能手机传感器的数据。自启动记录数据的程序以来,时间戳是经过纳秒的。简短的例子:
timestamps,acce_x,acce_y,acce_z,grav_x,grav_y,grav_z,labels
25993266,-2.5290375,6.9180603,4.3400116,-2.9009695,7.935462,4.978274,OTHER
28129496,-2.5290375,6.9180603,4.3400116,-2.87558475,7.87134935,5.091722799999999,OTHER
31028666,-2.53741455,6.9312286499999995,4.605766300000001,-2.8502,7.8072367,5.2051716,OTHER
33164897,-2.5457916,6.944397,4.871521,-2.79687885,7.73525185,5.3374355,OTHER
36064067,-2.4727707,6.91207125,5.1803741500000005,-2.7435577,7.663267,5.4696994,OTHER
38200297,-2.3997498,6.8797455,5.4892273,-2.6648885,7.59296125,5.6024062,OTHER
41099467,-2.25849155,6.85580445,5.79090115,-2.5862193,7.5226555,5.735113,OTHER
43235697,-2.1172333,6.8318634,6.092575,-2.50272225,7.45811375,5.85305635,OTHER
46134867,-1.9903412,6.810318,6.32122035,-2.4192252,7.393572,5.9709997,OTHER
时间戳之间的时间步长不相等,但我希望它们相等。我的问题是如何实现这一目标? 我正在考虑使用下面的代码将纳秒级下采样到微秒级。这是我第一次尝试在执行过程中不返回错误,但它返回一个没有时间戳的 CSV 文件,并且第一行之后的每一行都是完全空的。
series = pandas.read_csv("file3.csv", header=0, index_col=0, squeeze=True, nrows=1000)
series.index = pandas.to_datetime(series.index, unit='ns')
downsampled = series.resample("U").mean()
downsampled.to_csv("file4.csv", index=False)
我会很感激改进我的代码的方法以及实现我总体目标的其他想法。
【问题讨论】:
标签: python pandas csv timestamp downsampling