我在一家公司工作,最近我从使用电子表格包改为python。因为,我是python的新手,有很多我难以掌握的东西。使用python,我试图从一个大的csv文件(37791行和316列)中提取数据。这是我写的一段代码:
解决方案1
import numpy as np
import pandas as pd
df=pd.read_csv=('C:\\Users\\Maxwell\\Desktop\\Test.data.csv',skiprows=1)
data=df.loc[:,['Steps','Parameter']]
此命令生成错误,即它给出 DtypeWwarning:列(0,1,2,3 ........ 81)具有混合类型。在导入时指定dtype选项或设置低内存= False
所以,我找到了解决方法。
解决方案2
import pandas as pd
import numpy as np
df=pd.read_csv(('C:\\Users\\Maxwell\\Desktop\\Test.data.csv',skiprows=1,error_bad_lines=False, index_col=False, dtype='unicode')
data=df.loc[:,['Steps','Parameter']]
两个问题:
i)我能够绕过错误,但现在我想要的列(步骤和参数)已经转换为对象(可能是由于dtype ='unicode'命令)。如何将Steps列转换为整数类型和参数到float。
ii)有人说dtype警告并不是真的错误。但是,我发现当我使用解决方案1并读取csv文件时。 Steps列包含一些浮点数。原始csv文件在Steps列中没有任何浮点数。它看起来好像是python本身放置了一些花车!!为什么会这样?
(我无法上传原始csv文件,因为我的公司不允许它!)