为 Athena 处理 pandas 中的日期时间格式
Manipulating datetime formats in pandas for Athena
由于 Pandas 和 Athena 读取日期时间格式的方式,我必须处理多个列才能以有效的格式获取数据。
其中涉及将字符串转换为日期时间
df["serviceStartTimestamp"] = pd.to_datetime(df["serviceStartTimestamp"])
returning
0 2019-08-07 08:04:43.942000+00:00
1 2019-08-07 08:13:48.397000+00:00
2 2019-08-07 09:02:29.067000+00:00
然后运行这个,
df["serviceStartTimestamp"] = pd.to_datetime(df["serviceStartTimestamp"].astype("str").str.split("+", expand=True)[0])
returning
0 2019-08-07 08:04:43.942
1 2019-08-07 08:13:48.397
2 2019-08-07 09:02:29.067
如果日期时间列包含任何其他数字,它们在 athena 中会被弄乱,
但是我目前的解决方法似乎效率低下,所以我想知道是否有更好的方法?
你需要通过format='%Y-%m-%d %H:%M:%S.%f'
.
pd.to_datetime(df["serviceStartTimestamp"]).dt.strftime('%Y-%m-%d %H:%M:%S.%f')
输出:
0 2019-08-07 08:04:43.942
1 2019-08-07 08:13:48.397
2 2019-08-07 09:02:29.067
由于 Pandas 和 Athena 读取日期时间格式的方式,我必须处理多个列才能以有效的格式获取数据。
其中涉及将字符串转换为日期时间
df["serviceStartTimestamp"] = pd.to_datetime(df["serviceStartTimestamp"])
returning
0 2019-08-07 08:04:43.942000+00:00
1 2019-08-07 08:13:48.397000+00:00
2 2019-08-07 09:02:29.067000+00:00
然后运行这个,
df["serviceStartTimestamp"] = pd.to_datetime(df["serviceStartTimestamp"].astype("str").str.split("+", expand=True)[0])
returning
0 2019-08-07 08:04:43.942
1 2019-08-07 08:13:48.397
2 2019-08-07 09:02:29.067
如果日期时间列包含任何其他数字,它们在 athena 中会被弄乱, 但是我目前的解决方法似乎效率低下,所以我想知道是否有更好的方法?
你需要通过format='%Y-%m-%d %H:%M:%S.%f'
.
pd.to_datetime(df["serviceStartTimestamp"]).dt.strftime('%Y-%m-%d %H:%M:%S.%f')
输出:
0 2019-08-07 08:04:43.942
1 2019-08-07 08:13:48.397
2 2019-08-07 09:02:29.067