转换数据框中的日期
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
该函数的第一行是将字符串转换为日期时间的各个元素。
我有一个伦敦警方拦截搜查的数据框; '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
该函数的第一行是将字符串转换为日期时间的各个元素。