探索数据集中混合值类型拆分的有效方法

问题描述 投票:0回答:1

早安社区,

我有许多现有的数据集遵循这种格式的变体:

姓名 时间 速度1 速度2 速度3
激光 21:29:30 F350 F350 F350
派瑞克斯 21:35:40 F350 F350 F350
漫画07103223:25:29 M085 F350 F350 F350
阿苏尔 23:30:30 F360 F360 F360
GGBL 24:10:30 F360 F360 F360
里瓦克 25:25:10 F370 F370 F370
ATY22102511:41:46 N0465 F390 F390 F390

在某些情况下,在 NAME 值下,NAME 后面跟着 6 个数值,后跟时间。我希望分割时间值,以便移动行并将值重新对齐到各自的列。所以本质上它看起来像这样:

姓名 时间 速度1 速度2 速度3
激光 21:29:30 F350 F350 F350
派瑞克斯 21:35:40 F350 F350 F350
漫画071032 23:25:29 M085 F350 F350
阿苏尔 23:30:30 F360 F360 F360
GGBL 24:10:30 F360 F360 F360
里瓦克 25:25:10 F370 F370 F370
ATY221025 11:41:46 N0465 F390 F390

我必须道歉,但在过去的历史中,我曾尝试提供我的尝试,但对于这个特殊情况,我需要社区的帮助,无论是为我提供尝试创建脚本的文献还是一些小例子,但是我想使用 Pandas,并且我正在考虑使用正则表达式可以在这种情况下使用。

(对我来说)棘手的部分以及我所知道的是要考虑 NAME 列中的值,这些值总是会发生变化,并且文本字符可以是两个字符、三个、四个字符,最多不超过 5 个字符(例如 MANGA、ATY 、BG、ANNA 等),这些名称将会更改。

此外,名称和时间值之间的数字字符始终是 6 个数字(这是名称的位置),例如漫画071032ATY221025

我希望这是有道理的,再次感谢大家。

pandas regex dataframe
1个回答
0
投票

给定你的数据这个正则表达式

([A-Z]{2,5}\d{6})(\d{2}:\d{2}:\d{2})

应该能够分割你的文本和时间戳

稍微修改一下,以防您将时间戳放在错误的位置,但名称中没有其他数字

([a-z]{2,5}(?:\d{6})?)(\d{2}:\d{2}:\d{2})

第 1 组是您的姓名,第 2 组是您的时间戳

我只是想问一下你如何加载数据,源中也有错误吗?

© www.soinside.com 2019 - 2024. All rights reserved.