首页 > 解决方案 > 提取在同一行中同时具有时间戳和位置的数据帧

问题描述

有没有简单的方法来提取在同一行中同时具有时间戳和位置的数据框?

此数据框中的 1 列:

event
2019-01-01 11:08:33.000 USA
2019-01-02 11:08:33.000 Mexico
2019-01-03 11:08:33.000 Canada

有什么简单的方法可以将它们分成两列,例如时间和位置?

time,location
2019-01-01 11:08:33.000,USA
2019-01-02 11:08:33.000,Mexico
2019-01-03 11:08:33.000,Canada

标签: python-3.xpandas

解决方案


如果字符串Series.str.rsplit中没有空格,则使用:location

df[['time', 'loc']] = df.pop('event').str.rsplit(n=1, expand=True)
print (df)
                      time     loc
0  2019-01-01 11:08:33.000     USA
1  2019-01-02 11:08:33.000  Mexico
2  2019-01-03 11:08:33.000  Canada

或带有提取时间垃圾邮件的正则表达式解决方案Series.str.extract

regex = r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) (.*)'
df[['time', 'loc']] = df.pop('event').str.extract(regex)
print (df)
                      time     loc
0  2019-01-01 11:08:33.000     USA
1  2019-01-02 11:08:33.000  Mexico
2  2019-01-03 11:08:33.000  Canada

推荐阅读