gpt4 book ai didi

python - 值错误: unconverted data remains: 00

转载 作者:行者123 更新时间:2023-12-01 06:36:31 30 4
gpt4 key购买 nike

我正在使用 pd.to_datetime() 方法将一列字符串转换为日期时间对象。

import pandas as pd import numpy as np

main = pd.read_csv('correctedstats.csv', nrows = 50) main['Date'] =
pd.to_datetime(main['Date'], format = '%d/%m/%y')

这给了我以下错误 -

Traceback (most recent call last): File "/Users/pranavmarla/jama/lib/python3.6/site-packages/pandas/core/tools/datetimes.py", line 448, in _convert_listlike_datetimes values, tz = conversion.datetime_to_datetime64(arg) File "pandas/_libs/tslibs/conversion.pyx", line 200, in pandas._libs.tslibs.conversion.datetime_to_datetime64 TypeError: Unrecognized value type:

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "mergeDates.py", line 8, in main['Date'] = pd.to_datetime(main['Date'].astype(str), format = '%d/%m/%y') File "/Users/pranavmarla/jama/lib/python3.6/site-packages/pandas/util/_decorators.py", line 208, in wrapper return func(*args, **kwargs) File "/Users/pranavmarla/jama/lib/python3.6/site-packages/pandas/core/tools/datetimes.py", line 778, in to_datetime values = convert_listlike(arg._values, True, format) File "/Users/pranavmarla/jama/lib/python3.6/site-packages/pandas/core/tools/datetimes.py", line 451, in _convert_listlike_datetimes raise e File "/Users/pranavmarla/jama/lib/python3.6/site-packages/pandas/core/tools/datetimes.py", line 416, in _convert_listlike_datetimes arg, format, exact=exact, errors=errors File "pandas/_libs/tslibs/strptime.pyx", line 148, in pandas._libs.tslibs.strptime.array_strptime ValueError: unconverted data remains: 00

日期的格式为“03/01/00”

如果我们按以下方式将日期文本输入到函数中,代码运行正常

pd.to_datetime('03/01/00', format = '%d/%m/%y')

我在这里做错了什么?

编辑 - companystats.csv -

0          1.0             34.0  Asian Paints        15.90  INE021A01026    03/01/00
1 2.0 34.0 Asian Paints 16.06 INE021A01026 04/01/00
2 3.0 34.0 Asian Paints 15.96 INE021A01026 05/01/00
3 4.0 34.0 Asian Paints 15.73 INE021A01026 06/01/00
4 5.0 34.0 Asian Paints 16.07 INE021A01026 07/01/00
5 6.0 34.0 Asian Paints 17.29 INE021A01026 10/01/00
6 7.0 34.0 Asian Paints 17.30 INE021A01026 11/01/00
7 8.0 34.0 Asian Paints 17.40 INE021A01026 12/01/00
8 9.0 34.0 Asian Paints 17.45 INE021A01026 13/01/2000
9 10.0 34.0 Asian Paints 17.08 INE021A01026 14/01/2000
10 11.0 34.0 Asian Paints 17.14 INE021A01026 17/01/2000
11 12.0 34.0 Asian Paints 17.25 INE021A01026 18/01/2000
12 13.0 34.0 Asian Paints 17.47 INE021A01026 19/01/2000
13 14.0 34.0 Asian Paints 17.52 INE021A01026 20/01/2000
14 15.0 34.0 Asian Paints 17.74 INE021A01026 21/01/2000
15 16.0 34.0 Asian Paints 19.10 INE021A01026 24/01/2000
16 17.0 34.0 Asian Paints 20.61 INE021A01026 25/01/2000
17 18.0 34.0 Asian Paints 19.71 INE021A01026 27/01/2000
18 19.0 34.0 Asian Paints 20.03 INE021A01026 28/01/2000
19 20.0 34.0 Asian Paints 19.19 INE021A01026 31/01/2000
20 21.0 34.0 Asian Paints 19.18 INE021A01026 01/02/00
21 22.0 34.0 Asian Paints 19.17 INE021A01026 02/02/00
22 23.0 34.0 Asian Paints 19.00 INE021A01026 03/02/00
23 24.0 34.0 Asian Paints 19.03 INE021A01026 04/02/00

编辑 - 解决了!我的日期列有两种类型的日期;

21/01/2000

02/02/00

我使用 pd.to_datetime() 方法的错误属性创建两个单独的列,然后将其合并以获得我想要的列

pd.to_datetime(main,format = '%d/%m/%y', errors = 'coerce')

pd.to_datetime(main,format = '%d/%m/%Y', errors = 'coerce')

欢迎更优雅的解决方案

最佳答案

这是查看函数失败位置的好方法:

df = pd.DataFrame({'date': ['03/01/00','13/01/2000','00/01/00']})

def date_format(f):
try:
return pd.to_datetime(f)
except Exception as e:
return e.args

print(df['date'].apply(date_format))

0 2000-03-01 00:00:00
1 2000-01-13 00:00:00
2 (month must be in 1..12,)

关于python - 值错误: unconverted data remains: 00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642241/

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