【发布时间】:2022-02-28 08:58:20
【问题描述】:
我有一个包含日期时间列 ('created_at') 类型的数据框:系列。我需要将此列转换为日期时间格式,以便对其执行一些 groupby 操作。
这是数据框结构:
id created_at full_text
0 1286763394658381824 ['2020-07-24T20:41:14Z'] عدم إصابتك بفايروس كورونا حتى الان مؤشر لأمرين
1 1240341918967459840 ['2020-03-18T18:18:52Z'] رسالة مسربة من داخل #سجن_العقرب تؤكد على تفشى
2 1243387711995572224 ['2020-03-27T04:01:46Z'] في الافلام الاجنبيه نشاهد امريكا تقود العالم ل
3 1317384182012792832 ['2020-10-17T08:37:19Z'] هناك الكثير من الاكاذيب والفبركات حول لقاح كور
4 1317404463859142656 ['2020-10-17T09:57:55Z'] @kasimf لقاح كورونا ليس هدفه الإضرار بالبشر إن
5 1242851102258868224 ['2020-03-25T16:29:28Z'] بعد تفشي المرض في إيطاليا ولا وجود علاج قرر جم
我尝试了不同的方法将“create_at”列转换为日期时间格式,但没有一个奏效。这是一个例子:
from dateutil.parser import parse
df['date'] =parse(df['created_at'].astype(str))
这给了我以下错误:
raise TypeError('Parser must be a string or character stream, not '
TypeError: Parser must be a string or character stream, not Series
编辑
我通过以下方式解决了这个问题:
from dateutil import parser
def convert_date(date_str):
return parser.parse(date_str)
df['date']= df['created_at'][0][2:-2]
df['date'] = df['date'].apply(convert_date)
谢谢大家
【问题讨论】:
-
使用 pd.to_datetime;
df['date'] = pd.to_datetime(df['created_at']) -
感谢您的建议。这给了我以下错误: raise ParserError("Unknown string format: %s", timestr) dateutil.parser._parser.ParserError: Unknown string format: ['2020-07-24T20:41:14Z']
-
也可以定义格式:
pd.to_datetime(df['created_at'], format="%Y-%m-%dT%H:%M:%S%z). -
...或从列表中获取第一个元素:
pd.to_datetime(df['created_at'].str[0]) -
第二个建议也没有用:ValueError: time data '['2020-07-24T20:41:14Z']' does not match format '%Y-%m-%dT% H:%M:%S%Z'(匹配)
标签: python pandas dataframe datetime