我有一个数据框架,用于伦敦警方的拦截和搜索;“date”列中有类似于2019-10-01T04:31:39+00:00 2019-10-01T04:31:39+..的条目,我试图在每一行中提取日月一年,以便能够开始分析。
有人能帮我做这个吗?
发布于 2020-12-07 07:08:25
看看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该函数的第一行是将字符串转换为datetime的各个元素。
发布于 2020-12-07 02:55:17
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 2019https://stackoverflow.com/questions/65175399
复制相似问题