首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据转换日期

数据转换日期
EN

Stack Overflow用户
提问于 2020-12-07 02:42:08
回答 2查看 66关注 0票数 0

我有一个数据框架,用于伦敦警方的拦截和搜索;“date”列中有类似于2019-10-01T04:31:39+00:00 2019-10-01T04:31:39+..的条目,我试图在每一行中提取日月一年,以便能够开始分析。

有人能帮我做这个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-07 07:08:25

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

代码语言:javascript
复制
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的各个元素。

票数 0
EN

Stack Overflow用户

发布于 2020-12-07 02:55:17

代码语言:javascript
复制
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]))

产出:

代码语言:javascript
复制
                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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65175399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档