Python 数据类型值错误

Python 数据类型值错误,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在尝试将csv数据帧读取的所有列转换为浮点。当我执行以下代码时: data = pd.read_csv('statistic.csv', parse_dates=True, index_col=['DATE'], dtype={'QUANTITY' : 'float', low_memory=False) 下面是data.head()在没有dtype参数的情况下的外观: ACCEPTOR QUANTITY ARTICLEN

我正在尝试将csv数据帧读取的所有列转换为浮点。当我执行以下代码时:

data = pd.read_csv('statistic.csv', 
parse_dates=True, index_col=['DATE'], dtype={'QUANTITY' : 'float', 
low_memory=False)
下面是data.head()在没有dtype参数的情况下的外观:

                        ACCEPTOR    QUANTITY      ARTICLENO
DATE                                                                           
2014-07-07 00:00:00.0           1      348  434070668          
2014-08-11 00:00:00.0           1      281  434070668
2014-08-18 00:00:00.0           1      835  434070668
2014-08-25 00:00:00.0           1      147  434070668
2014-09-08 00:00:00.0           1      569  434070668
使用dtype选项,我会出现以下错误:

ValueError: could not convert string to float: 'QUANTITY'
背景:我需要手动将其转换为float,因为pandas不会自动识别那些大文件的数据类型(csv大约有10亿行/400 MB)(对于大约500000行,它会自动识别)。 稍后可能会发生,在同一日期,同一商品编号有多个数量条目,因此我需要一个数字类型来防止字符串串联,因为我执行以下代码来为一些机器学习准备数据帧:

data_extracted = data.groupby(['DATE','ARTICLENO']) 
['QUANTITY'].sum().unstack()
我知道QUANTITY不是有效的float,但如何告诉pandas不要转换列标题

编辑:以下是csv外观的复制粘贴:

ACCEPTOR    QUANTITY    ARTICLENO   DATE
1            348    434070668       2014-07-07 00:00:00.0
1            281    434070668       2014-08-11 00:00:00.0
1            835    434070668       2014-08-18 00:00:00.0
1            147    434070668       2014-08-25 00:00:00.0
1            569    434070668       2014-09-08 00:00:00.0
1            890    434070668       2014-09-22 00:00:00.0
1            358    434070668       2014-09-29 00:00:00.0
1            359    434070668       2014-10-06 00:00:00.0
1            166    434070668       2014-10-27 00:00:00.0
1            235    434070668       2014-11-24 00:00:00.0
1            378    434070668       2014-12-15 00:00:00.0
试试这个

选项1

data = pd.read_csv('statistic.csv', 
parse_dates=True, index_col=['DATE'], dtype={'QUANTITY' : 'float', 
low_memory=False, dtype={'QUANTITY': np.float64})
选项2

data[['QUANTITY']] = data[['QUANTITY']].apply(pd.to_numeric, errors='coerce')

您能否分享输入CSV文件的外观(与数据帧结果相反)?默认情况下,列应作为列而不是数据提供。编辑问题我以前尝试过选项2,产生了相同的结果。我将尝试选项1,但选项2有效,唯一的问题是:我的文章编号也被转换为float,这有点糟糕,因为我在后续步骤中将它们用作列标题。在以后的步骤中,有没有办法避免或恢复这种情况?