gpt4 book ai didi

Python to_datetime(来自 3 列中的 int/float)

转载 作者:行者123 更新时间:2023-12-01 07:05:17 26 4
gpt4 key购买 nike

我的数据集中有 3 列:年 (int)、月 (int)、日 (float)。我想使用 to_datetime 创建一个日期列。

样本数据图片链接:https://ibb.co/kSyz4Y0

链接到整个数据集: https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv

我尝试将这 3 列转换为 3 个 int 或 3 个字符串,但总是得到相同的错误 - day 超出范围。

我的问题是:

1) 我应该采用什么列格式才能使用 to_datimetime - int 或 string?

2) 我可以或如何使用 to_datetime 从 3 列创建日期?或者我是否必须先连接这 3 列?

3) 如何消除这个“日期超出范围问题”?我询问了 Google 博士,但没有一个解决方案适合我。

data['td'] = pd.to_datetime(data['year'])

data['tm2'] = td + timedelta(days=1)

如何在第一行添加月份和日期列?

最佳答案

  1. int 和 str 都可以,您只需更改 Day 列的 float 类型即可。无论如何,这是不现实的,我们不会在日期中使用小数天。

  2. date_series = pd.to_datetime(df) 将为您提供日期时间系列,然后您可以将其附加到初始数据帧。

测试代码:

import numpy as np
import pandas as pd

data = pd.DataFrame(columns=['Year', 'Month', 'Day'])
data = data.append({'Year': 2019, 'Month': 10, 'Day': 20}, ignore_index=True)
date_series = pd.to_datetime(data)
data['Date'] = date_series

输出数据:

    Year    Month   Day Date
0 2019 10 20 2019-10-20

编辑

import numpy as np
import pandas as pd

data = pd.DataFrame(columns=['Year', 'Month', 'Day', 'Gender', 'No. of Births'])
data = data.append({'Year': 2019, 'Month': 10, 'Day': 20, 'Gender': 'M', 'No. of Births': 5}, ignore_index=True)

date_prep = data.iloc[:, 0:3]
date_series = pd.to_datetime(date_prep)
data['Date'] = date_series

关于Python to_datetime(来自 3 列中的 int/float),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471605/

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