将 Twitter created_at 转换为日期时间无效

Converting Twitter created_at to datetime not working

我正在做一个分析推文的项目,我首先尝试将 created_at 列转换为日期时间。

format = "%Y-%m-%d %H:%M:%S"
df['created_at_datetime'] = pd.to_datetime(df['created_at'], format = format).dt.tz_localize(None)

我一直收到以下错误

我在分析 Twitter 方面处于非常入门和初级的阶段 class,所以我根本不是编码专家。我之前在这行代码工作的地方做过作业,所以我不确定现在的错误是什么。

我在 Colab 工作,这是全部内容:https://colab.research.google.com/drive/1XXJsoMQouzH-1t7eWRd1c-fsrI3vYFcf?usp=sharing

谢谢!

试试这个:

format_y = "%Y-%m-%d %H:%M:%S"
pd.to_datetime(date, format = format_y).tz_localize(None)

检查 'created_at' 列中的所有值的时间戳格式是否符合您的预期。 似乎有些行可能有字符串 "en" 而不是时间戳。

您需要找到不合适的罪魁祸首值。 工作流程如下:

import pandas as pd
raw_dt_series = pd.Series(['2022-05-05', 'foobar','2022-05-02', '202', None])
raw_dt_series_notna = raw_dt_series.dropna()
dt_series = pd.to_datetime(raw_dt_series_notna, errors='coerce')

输出:

0   2022-05-05
1          NaT
2   2022-05-02
3          NaT     **< - Treated as np.NaN in pandas**
dtype: datetime64[ns]

您找到了引发类型错误的行。

raw_dt_series_notna.loc[dt_series.isna()]

是时候调查给定值不符合格式的原因了。 查清楚后,调整格式参数:

pd.to_datetime(raw_dt_series, format='%YOUR%NEW%FORMAT)