我使用pd.to_datetime()
方法将一列字符串转换为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')
这给了我以下的错误-
回溯(最近一次调用):文件“/Users/pranavmarla/jama/lib/python3.6/site packages/pandas/core/tools/datetimes.py”,第448行,在类似于列表的日期时间值中,tz=conversion。datetime_to_datetime64(arg)文件“pandas/_libs/tslibs/conversion.pyx”,第200行,pandas格式_图书馆。tslibs。转变datetime_to_datetime64类型错误:无法识别的值类型:
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用last):文件“mergeDates.py”,第8行,在main['Date']=pd中。to_datetime(main['Date'].astype(str),格式=“%d/%m/%y”)文件“/Users/pranavmarla/jama/lib/python3.6/site packages/pandas/util/_decorators.py”,包装返回函数(*args,**kwargs)文件“/Users/pranavmarla/jama/lib/python3.6/site packages/pandages/core/tools/datetimes.py”,第778行,to_datetime values=convert(arg._values,True,format)File“/Users/pranavmarla/jama/lib/python3.6/site packages/pandas/core/tools/datetimes.py”,第451行,在"convert"listlike"datetimes raise e File“/Users/pranavmarla/jama/lib/python3.6/site packages/pandates/core/tools/datetimes.py”中,第416行,在"convert"转换"列表状"datetimes arg“pandas/_-libs/tslibs/strptime.pyx”,第148行,在pandas中。_-libs.tslibs.strptime.array_-strptime-ValueError:未转换的数据保留:00
日期是'03/01/00'的格式
如果按以下方式将日期文本输入函数,代码运行良好
pd.to_datetime('03/01/00', format = '%d/%m/%y')
我做错了什么?
编辑-公司测试。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的errors属性。to_datetime()方法创建两个独立的列,然后将它们合并为所需的列
pd.to_datetime(main,format = '%d/%m/%y', errors = 'coerce')
和
pd.to_datetime(main,format = '%d/%m/%Y', errors = 'coerce')
我们欢迎一个更优雅的解决方案
尝试将推断日期时间格式传递为true,这可能是因为在数据中,日期不是传递的格式
pd.to_datetime(df['Date'], infer_datetime_format=True)
或传递错误='ignore'
pd.to_datetime(df['Date'], format = '%d/%m/%y',errors='ignore')
这里有一个很好的方法来查看函数失败的地方:
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,)
问题内容: 无论如何,有什么可以将价值转换为价值? 我尝试投射它,但是没有用。 问题答案: BigInteger用于保存任意精度的整数,而不是小数。您可以使用该类来容纳双人间。 通常,您不能将Java原语类型转换为另一个类。我知道的例外是扩展类,例如和包装器类,它们允许您将int值转换为Integer,依此类推。
守护进程系统线程[Java2D Disposer](暂停(异常OutOfMemoryError))拥有:Win32Graphics环境(id=116)拥有:FontStrikeDisposer(id=117)D3DGraphicsDevice.getDeviceCaps(int)line: 108 D3DGraphicsDevice.createDevice(int)line: 87 Win32G
我正在使用MySQL工作台(5.6.19)。它有几个连接,其中我要访问的表位于“Connection1”(连接名称)中。连接主机:122.0.0.0。我的数据库名是“sorder”。user=“root”,password=“password”,port=3306。 这是我的一段代码: 我的驱动程序连接失败。另外,我不确定我的路径Strin url应该是什么,因为mySQL workbench中有
问题内容: 我想检查浏览器是否仍然存在,如果不存在,那么我想打开一个新的浏览器!网络驱动程序中是否有可用的api来检查浏览器是否仍然存在? 问题答案: 调用后,将driver的值设置为 但是,如果调用,它将驱动程序的值设置为 因此,如果您在调用 driver.quit() 之后检查浏览器窗口,则可以通过以下实现知道。
设置: 具有一个片段的活动,该片段通过单击按钮进行实例化。在fragment的构造函数中,使用了Bundle。在Bundle和ArrayList中 问题:分离片段时,字符串(姓氏)会按预期销毁,但数组列表会持续存在。因此,在调用片段的新实例时,会出现前一个ArrayList条目。回调不是问题所在。该行为也会在没有回调的情况下出现。 我已经检查了变量(和)和在点片段构造函数(),片段在方法()和片段
问题内容: 我注意到这个构造函数非常痛苦(即使在Stack Overflow上也是如此)。即使文档明确指出,人们仍会使用它: 此构造函数的结果可能无法预测 http://java.sun.com/javase/6/docs/api/java/math/BigDecimal.html#BigDecimal(double) 我什至看到JSR-13得到批准,并提出了以下建议: 可能不推荐使用的现有规范: