我在恶梦般地把一系列字符串转换成日期。这是我的数据样本:
net_due_date from_date clearing_date
0 2018-10-25 00:00:00.000 2017-06-06 2018-10-13 00:00:00.000
1 2018-09-27 00:00:00.000 2017-06-06 2018-09-30 00:00:00.000
2 2018-05-31 00:00:00.000 2017-06-06 2018-05-18 00:00:00.000
3 2017-12-22 00:00:00.000 2017-06-06 2017-12-08 00:00:00.000
4 2018-01-30 00:00:00.000 2017-06-06 2018-01-16 00:00:00.000
5 2018-07-31 00:00:00.000 2017-06-06 2018-07-31 00:00:00.000
6 2018-05-29 00:00:00.000 2017-06-06 2018-05-17 00:00:00.000
7 2017-12-14 00:00:00.000 2017-06-06 2017-12-08 00:00:00.000
8 2017-11-24 00:00:00.000 2017-06-06 2017-12-08 00:00:00.000
9 2018-09-27 00:00:00.000 2017-06-06 2018-09-13 00:00:00.000
10 2018-01-25 00:00:00.000 2017-06-06 2018-01-16 00:00:00.000
11 2017-11-24 00:00:00.000 2017-06-06 2017-11-30 00:00:00.000
12 2018-10-24 00:00:00.000 2018-01-09 2018-10-11 00:00:00.000
13 2018-01-22 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
14 2018-09-06 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
15 2018-10-24 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
16 2018-06-15 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
17 2018-04-10 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
18 2018-01-12 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
19 2018-01-24 00:00:00.000 2018-01-09 2018-10-10 00:00:00.000
以下是数据类型:
net_due_date object
from_date object
clearing_date object
dtype: object
我正在尝试将所有这些数据转换为相同的格式,以便可以对其运行函数来计算日期之间的差异。你知道吗
以下代码在净到期日正常工作:
df['net_due_date'] = pd.to_datetime(df['net_due_date'], format='%Y-%m-%d')
而且类似的代码从\u日期起就可以正常工作:
df['from_date'] = pd.to_datetime(df['from_date'], format='%Y-%m-%d')
但是,清除日期中的某些值为9999-12-31,当我运行相同的代码时,会出现以下错误:
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 9999-12-31 00:00:00
我花了好几个小时试图解决这个问题,最近的一个链接是: Time Series, OOB Timestamps
但是我遇到了以下错误:
TypeError: unsupported operand type(s) for //: 'str' and 'int'
为了解决这个问题,我尝试先使用To\ numeric将列转换为int,但又出现了一系列错误。我希望有人已经在这个问题之前,可以帮助,因为我找不到任何在线解决这个问题!你知道吗
您可以使用相同方法的^{} argument :
这一行应该能帮到你:
如有必要,您可以在
DataFrame
之后对NaT
值进行按摩,并转换为对您有意义的内容,例如:为了确认
dtypes
:我假设在您的例子中,所有列都是
String
类型,并且包含日期 +有时,有时,有时。所以最简单的选择是:运行以下脚本转换部分源数据:
当您执行
df.info()
时,您将得到(打印输出的一部分):为了演示,您可以在前面和后面添加
print(df)
转换。你知道吗就“非常大”的年份而言,熊猫会用 年份在1677年到2262年之间。所以作为第一步 您应该将这些超出范围的日期更改为例如2250。你知道吗
相关问题 更多 >
编程相关推荐