python - 从 Pandas 列中删除时间戳
问题描述
我正在使用以下包含Date |TimeStamp | Name | Message
为字符串的 DataFrame 列
59770 [08/10/18, 5:57:43 PM] Luke: Message
59771 [08/10/18, 5:57:48 PM] Luke: Message
59772 [08/10/18, 5:57:50 PM] Luke: Message
我正在尝试从列中删除时间戳,我的预期输出是:
59770 Luke: Message
59771 Luke: Message
59772 Luke: Message
我尝试使用
import re
df.iloc[:,0] = list(map(lambda x : re.sub(".*\d:\d\d\s[a|p]m","", x)[12:],df.iloc[:,0]))
但是由于每个字符串的长度不同,这种方法会使情况变得更糟。
请指教。
解决方案
您可以使用提取字符串功能。几个选项取决于您希望获得结果的方式。
df = pd.DataFrame({'text':['5:57:43 PM] Luke: Message',
'5:57:48 PM] Luke: Message',
'5:57:50 PM] Luke: Message']})
import re
import pandas as pd
df['text'].str.extract(r'\s*(.{10})](.*)')
0 1
0 5:57:43 PM Luke: Message
1 5:57:48 PM Luke: Message
2 5:57:50 PM Luke: Message
或者,如果您希望将名称和消息分开:
df['text'].str.extract(r'\s*(.{10})](.*):(.*)')
0 1 2
0 5:57:43 PM Luke Message
1 5:57:48 PM Luke Message
2 5:57:50 PM Luke Message
推荐阅读
- odata - SEGW实体类型不带key
- css - 表 td 宽度固定为 th
- python - 如何在 Python 中使锯齿状数组整齐?
- angular - Angular 5 - 我们如何测试 router.navigate([id],{relativeTo: this._activatedRoute}])
- ios - 无法通过溢出停止滚动:仅在 ios 设备上隐藏
- pdf-generation - wkhtmltopdf - 背景颜色不填充第二页
- c++ - 外部 C 声明中的 object 和 void 指针是否可交换?
- excel - Catia VBA - 自动化错误获取对象
- android - 如何获取手机的传感器数据
- ruby-on-rails - 使用 Uniqueid 模型的 uid 对用户进行身份验证?