转换数据框中的日期

Convert date in dataframe

我有一个伦敦警方拦截搜查的数据框; 'date' 列在每一行中都有类似 2019-10-01T04:31:39+00:00 2019-10-01T04:31:39+.. 的条目,我正在尝试提取日期月份和年份以便能够开始分析。

有人可以帮我做这件事吗??

df = df[0].str.split(expand=True)
df = df.astype("datetime64").rename(columns={0:"start", 1:"end"})
df = df.astype("datetime64").rename(columns={0:"start", 1:"end"})

df[["start_day", "start_month", "start_year"]] = df.start.transform(lambda x: pd.Series([x.day, x.month, x.year]))
df[["end_day", "end_month", "end_year"]] = df.end.transform(lambda x: pd.Series([x.day, x.month, x.year]))

输出:

                start                 end  start_day  start_month  start_year  end_start  end_month  end_year
0 2019-10-01 04:31:39 2019-10-01 04:31:39          1           10        2019          1         10      2019

看看 python 中日期时间字符串如何转换为日期(或日期时间)对象。 对于您的场景,将一个函数应用于您从源代码读取的整列日期字符串。

def convert_str_to_date(date_string):
    converted_date = datetime.strptime(date_string, "%Y-%m-%dT%H:%M:%S%z")
    return converted_date.month, converted_date.day, converted_date.year


>>> df
         name_of_date_column
0  2019-10-01T04:31:39+00:00
1  2019-10-01T04:31:39+00:00

df.apply(lambda x: convert_str_to_date(x['name_of_date_column']), axis=1)
# 0    (10, 1, 2019)
# 1    (10, 1, 2019)
# dtype: object

该函数的第一行是将字符串转换为日期时间的各个元素。