Pandas:对重复的时间戳重新采样

如何解决Pandas:对重复的时间戳重新采样

我正在寻找一种解决方案来重新采样基于 gnss 的数据。有两个csv格式的文件。可以通过时间戳和接收器明确识别数据。为了更有效地使用数据库,必须减少数据。

来自第一个 csv 文件原始数据:

日期时间 纬度 lon PDOP HDOP VDOP 接收器
2020-06-15 10:41:51.800 51.014296 13.780015 1.27 0.66 1.08 MOD=NEO-M8U-0
2020-06-15 10:41:52.200 51.014298 13.780017 1.27 0.66 1.08 MOD=NEO-M8U-0
2020-06-15 10:41:52.600 51.014298 13.780017 1.27 0.66 1.08 MOD=NEO-M8U-0
2020-06-15 10:41:53.000 51.014298 13.780017 1.27 0.66 1.08 MOD=NEO-M8U-0

和重新采样的版本使用:

df_gnss = df_gnssdata.resample("1S",label="right",closed="right").last()
日期时间 纬度 lon PDOP HDOP VDOP 接收器
2020-06-15 10:41:52.0 51.014296 13.780015 1.27 0.66 1.08 MOD=NEO-M8U-0
2020-06-15 10:41:53.0 51.014298 13.780017 1.27 0.66 1.08 MOD=NEO-M8U-0

一切正常。

问题: 来自第二个 csv 文件的原始数据

|datetime,svId,gnssId,prMes,cpMes,doMes,freqId,locktime,cno,elev,azim,prRes,receiver
|-
| 2020-06-15 10:41:51.800,18,18819690.864839826,98898148.01376344,9100.7783203125,64500,42,63,171,12,MOD=NEO-M8U-0
| 2020-06-15 10:41:51.800,26,18898475.83643752,99312188.42621994,8898.150390625,34,61,290,64,29,19535404.626421425,102659242.90557194,5326.11328125,45,50,72,21,20119878.873314977,105730657.34985732,9970.078125,46,41,204,-19,31,20837340.256752983,109500950.49708273,4756.482421875,224,8,16,21098212.356653187,110871854.1766653,10704.1064453125,43260,28,304,-23,MOD=NEO-M8U
| 2020-06-15 10:41:51.800,5,21687470.41932556,113968331.7959013,6576.39306640625,41400,36,20,49,-106,25,22170117.17070227,116504846.7321731,3855.67626953125,38720,30,134,-68,2,20674361.08438748,108644483.35774152,6237.05419921875,66,183,-5,27,22681250.109272823,119190760.19749376,9190.7265625,35,48,302,1,15,22865522.048461888,120159151.53984466,9805.8271484375,220,4,24114401.037752766,126722022.71452372,4943.53564453125,32,53,-8,24,6,17461541.697876718,93374682.96203424,8347.490234375,9,38,75,266,14,17547922.134648934,93540242.64641856,7146.93212890625,71,247,44,23,18013117.07446595,96358008.47407912,5382.39794921875,10,40,57,39,19712758.72882908,105338957.24770068,11033.0087890625,7,323,17,20421382.08252564,109278920.26213168,11190.1328125,11,240,-38,25028167.310711637,131523905.368055,4462.0048828125,19,149,-144,26826911.73509302,140976382.70016584,7763.6904296875,-16,21872062.310719565,117123862.76723988,10840.2900390625,13,81,-261,MOD=NEO-M8U-0
| 2020-06-15 10:41:52.200,18819344.42566704,98896327.76647854,9101.73828125,18898137.26295038,99310408.75445652,8898.8408203125,62,19535201.80690319,102658177.63323784,5326.7392578125,20119499.457593217,105728663.27651404,9971.025390625,20837159.09731752,109499999.09936048,4757.36669921875,21097805.334686965,110869713.21157265,10705.314453125,43460,21687220.17884062,113967016.43073082,6577.5400390625,41600,22169969.367358018,116504075.55719538,3855.35888671875,38920,-76,20674123.57819893,108643235.85124858,6237.8623046875,182,-4,22680900.219319485,119188921.9840947,9191.369140625,22865148.65306525,120157190.27693364,9807.05859375,24114212.688827597,126721033.9762238,4944.07373046875,-7,17461229.51784391,93373013.39998628,8347.9482421875,-10,17547653.990240593,93538813.22032166,7147.5302734375,43,18012915.8167422,96356931.90315914,5383.234375,19712345.974466328,105336750.56864738,11034.166015625,20420963.874969844,109276682.15112592,11191.171875,25027997.288877644,131523012.90491705,4462.98583984375,-142,26826616.6562736,140974831.6567889,7766.03955078125,-29,21871657.016324896,117121691.86499886,10837.83984375,-256,MOD=NEO-M8U-0
| 2020-06-15 10:41:52.600,18818651.4775206,98892686.73469923,9104.4228515625,18897459.9152986,99306848.79543497,8901.7705078125,19534796.242030147,102656046.46861172,5329.84033203125,20118740.521448392,105724674.53730202,9973.7919921875,-21,20836796.7391836,109498095.7347746,4760.3232421875,21096990.25246656,110865430.7668829,10708.291015625,43860,-15,21686719.30960339,113964385.17380524,6580.07177734375,42000,-105,22169675.49260362,116502532.54727812,3858.94140625,39320,-74,20673648.66179804,108640740.26990286,6240.66943359375,22680200.574651983,119185245.0013721,9194.365234375,22864402.263626978,120153267.18037312,9809.6630859375,24113835.990977246,126719055.82112038,4947.427734375,17460605.218854055,93369673.67619991,8351.201171875,-13,17547117.640348148,93535953.83637904,7150.560546875,18012513.161692966,96354778.16429044,5386.228515625,19711520.090561144,105332336.64011955,11036.716796875,20420127.276630968,109272205.3008604,11193.90234375,-39,25027657.703277875,131521227.32395276,4465.5087890625,-145,26826026.267419364,140971729.02822265,7768.0859375,21870847.073193617,117117354.55721082,10842.9228515625,-255,MOD=NEO-M8U-0
| 2020-06-15 10:41:53.000,18817958.472660948,98889044.76738548,9105.833984375,18896782.36260676,99303287.9032383,8903.076171875,60,19534390.60299368,102653914.33838654,5331.2939453125,20117981.074884698,105720684.8536644,9975.1748046875,20836434.48575099,109496191.4196596,4761.53369140625,21096173.521200582,110861147.39777756,10709.490234375,44260,21686218.3792904,113961753.01743698,6581.00537109375,42400,22169380.383246318,116500988.55318424,3860.97998046875,39720,-61,20673173.57525752,108638243.70751746,6242.27001953125,22679500.655143555,119181567.01837043,9195.8564453125,22863655.337594517,120149343.08017528,9811.2509765625,24113459.162250265,126717076.72477472,4948.55712890625,-3,17459980.54904707,93366333.04387663,8352.525390625,17546581.129041184,93533093.58329582,7151.37353515625,18012110.319053892,96352623.47640038,5387.41259765625,19710693.79221329,105327921.74807169,11038.056640625,3,20419290.49942736,109267727.47779465,11195.384765625,25027317.56363369,131519440.66095872,4468.2216796875,-143,26825434.565436244,140968620.353811,7769.9208984375,-34,21870036.567292817,117113015.09344968,10845.9931640625,-250,MOD=NEO-M8U-0

使用:

df_satellite = df_gnsssatellitedata.resample("1S",closed="right").last()

将只输出最后一行时间戳:

datetime,receiver
2020-06-15 10:41:52.0,​​0,100-M-MOD>8
2020-06-15 10:41:53.0,1171113015.09344968,80-D80-M

我需要的是最后一个时间戳与第一个 csv 文件中的时间戳相匹配的所有行:

|datetime,receiver
|-
| 2020-06-15 10:41:52.0,MOD=NEO-M8U-0
| 2020-06-15 10:41:52.0,MOD=NEO-M8U
| 2020-06-15 10:41:52.0,MOD=NEO-M8U-0
| 2020-06-15 10:41:53.0,MOD=NEO-M8U-0

我期待收到一些提示来解决这个问题。

解决方法

基本上我可以通过 resample() 和 merge() 来实现我所需要的。

  1. 我在第一个 csv 文件/数据帧 df_gnssdata 中复制了 datetime 列(名为 datetimecopy 的新列),然后在获取 df_gnss 的 datetime 上重新采样。
  2. 我使用 copy() 将 df_gnss 复制到新的 df_relation 中,并将除日期时间(==重新采样)和日期时间复制(==原始时间戳)之外的所有列删除。
  3. 获取第二个 csv 文件/数据帧 df_gnsssatellitedata,并将 df_relation(在 datetimecopy 上)与 df_gnsssatellitedata(在 datetime)how='inner' 合并。
  4. 删除不需要的列 datetimecopy 和 datetime_y,重命名列 datetime_x(==重采样时间)以获得想要的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res