python - 如何使用带有多重分隔符的 df.str.split() 来保留分隔符
问题描述
我一直在使用的数据框有一列指示带有时区的日期时间,例如:2019-01-23T04:30:00+01:00。
Horodate
0 2019-01-23T04:30:00+01:00
1 2019-01-23T04:30:00+01:00
2 2019-01-23T04:30:00+01:00
3 2019-01-23T04:30:00-01:00
我想获取时区信息并将其放入另一个名为“TimeZone”的列中。我可以通过应用这个函数来做到这一点:
df["TimeZone"] = "+" + df["Horodate"].str.split('[+]').str[1]
这很好用:
Horodate TimeZone
0 2019-01-23T04:30:00+01:00 +01:00
1 2019-01-23T04:30:00+01:00 +01:00
2 2019-01-23T04:30:00+01:00 +01:00
3 2019-01-23T04:30:00-01:00 NaN
但它仅对以“+”开头的时区有效。我想找到一种方法来提取有关时区的全部信息,包括信号“+”或“-”并获得一个看起来像这样的数据框:
Horodate TimeZone
0 2019-01-23T04:30:00+01:00 +01:00
1 2019-01-23T04:30:00+01:00 +01:00
2 2019-01-23T04:30:00+01:00 +01:00
3 2019-01-23T04:30:00-01:00 -01:00
我想我必须通过拆分多个分隔符,但问题是,如何在需要拆分字符串的同时包含分隔符?我可以像这样切片字符串得到一个很好的结果:
df_test["TimeZone"] = df_test["Horodate"].str[19:]
但这不是一种通用的方法。提前致谢。
解决方案
只是字符串切片怎么样?
In [285]: df["TimeZone"] = df["Horodate"].str[-6:]
In [286]: df
Out[286]:
Horodate TimeZone
0 2019-01-23T04:30:00+01:00 +01:00
1 2019-01-23T04:30:00+01:00 +01:00
2 2019-01-23T04:30:00+01:00 +01:00
3 2019-01-23T04:30:00-01:00 -01:00
推荐阅读
- flutter - Flutter & Dart:管理从 Isolate 中进行的计算获得的数据的正确方法是什么?
- apache-kafka - Kafka Connect Sink Partition by recordField 在 Ticks 中
- r - 有没有办法在R studio中下载excel文件
- python - 如何检查 Pytorch 闪电中的验证指标?
- r - 使用 group_by 时出错,而不是在减去两个日期列 R 时使用排列时出错
- jenkins - 如何使 Jenkins 的工作不会因构建后操作失败而失败?
- apache-spark - 如何使 Spark 流按顺序执行
- asp.net-core - Blazor 服务器 - 如何从客户端计算机启动 IE 浏览器
- c# - 将 PDF 转换为图像字节数组以保存到数据库
- postgresql - 如何知道 Postgres 哈希分区中将使用哪个分区?