gpt4 book ai didi

python - 将 Pandas 系列(基于索引)切片为数据框的多列

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:48 25 4
gpt4 key购买 nike

例如,我尝试将包含 YYYYMMDD 格式日期的字段“日期”分成 3 个单独的字段(“年”、“月”、“日”)。

我有一种方法可以一次为每个值分配一个值,但我认为有一种更有效的方法可以产生所需的结果。

当前解决方案:

df['year'] = df['date'].astype(str).apply(lambda x: x[:4])
df['month'] = df['date'].astype(str).apply(lambda x: x[4:6])
df['day'] = df['date'].astype(str).apply(lambda x: x[6:8])

以下是我简化代码的尝试之一的示例:

df['year'], df['month'], df['day'] = df['date'].astype(str).apply(lambda x: [x[:4], x[4:6], x[6:8]])

最佳答案

您应该始终将日期列转换为 pandas 日期时间对象。您可以通过以下两种方式之一执行此操作:1. 当你冒充日期时:

 df = pd.read_csv('your-raw_date.csv', parse_dates=[5,7])

注意:5 和 7 是日期所在的列号。

  1. 您可以对单个列使用名为to_datetime 的方法。见this post了解详情。

其次,导入一个名为datetime的模块

import datetime as dt

一旦你有了这两件事,你就可以做这样的事情:

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day

你甚至可以做其他很酷的事情,比如

dt['signup_date_dayofweek'] = dt['date'].dt.dayofweek

请参阅 datatime module 的完整文档

关于python - 将 Pandas 系列(基于索引)切片为数据框的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com