Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列(0,1,3)具有混合类型。请在导入时指定dtype选项或将low_memory设置为False。导入csv文件时_Python_Excel_Pandas - Fatal编程技术网

Python 列(0,1,3)具有混合类型。请在导入时指定dtype选项或将low_memory设置为False。导入csv文件时

Python 列(0,1,3)具有混合类型。请在导入时指定dtype选项或将low_memory设置为False。导入csv文件时,python,excel,pandas,Python,Excel,Pandas,我正在使用pandas将csv文件导入python数据帧。PFA我的代码如下: import pandas as pd df=pd.read_csv('C:/Users/Administrator/Desktop/NSE_Normalize.csv') 当我使用上述代码导入时,不会出现错误,但会出现如下所示的警告: Columns (0,1,3) have mixed types.Specify dtype option on import or set low_memory=False.

我正在使用pandas将csv文件导入python数据帧。PFA我的代码如下:

import pandas as pd
df=pd.read_csv('C:/Users/Administrator/Desktop/NSE_Normalize.csv')
当我使用上述代码导入时,不会出现错误,但会出现如下所示的警告:

Columns (0,1,3) have mixed types.Specify dtype option on import or set low_memory=False.
通过参考答案,我了解了为什么会发生这种情况,并且我的文件具有不明确的数据类型

我可以通过以下方法解决此问题:

df = pd.read_csv("C:/Users/Administrator/Desktop/NSE_Normalize.csv",sep=',', error_bad_lines=False, index_col=False, dtype='unicode') as mentioned on [Specify dtype option on import or set low_memory=False][2]
但是当我导入与excel工作簿(.xlsx文件)相同的文件时。此错误不会发生。与csv对应项相比,Sure需要更长的时间才能导入,但未显示错误

因此,从上面的讨论中,我可以知道为什么在python中加载.xlsx文件的时间比加载.csv文件的时间要长吗?何时使用.csv导入和.xlsx导入

以下是我导入的文件:

excel文件“.xlsx”文件具有各种格式/xml代码,
pandas
必须“切碎”这些代码才能获取数据(请考虑excel中可用于转换和可视化数据的所有功能,这些功能无法保存为.csv,保存后会自动删除所有功能)。另一方面,.csv文件是非常原始的(像.txt文件),因此熊猫不必为了获取数据而切碎所有这些额外的疯狂内容

由此:查看“xml”文件的代码是什么样子的(这是“.xlsx”格式的基础)

看看pandas为了获取数据“A1”、“B1”等必须经过哪些步骤。因此,如果
.csv
文件满足您的所有要求,您应该始终努力从该文件中提取数据。应尝试在
pandas
中处理任何数据类型格式化计算等。我在这里特别讲的是读取数据。


至于你为什么会有问题,从你的截图上是无法分辨的。在阅读时,除了尝试指定
数据类型
内存不足
、或
解析日期
之外,还有一些事情可以帮助您:

df['numcol'] = pd.to_numeric(df['numcol'], errors='coerce')
df['datecol'] = pd.to_datetime(df['datecol'], errors='coerce')
df['datecol'] = pd.to_datetime(df['datecol'], dayfirst=True, errors='coerce') #UK / European dates

您能建议如何在导入之外指定数据类型吗?您可以在许多不需要导入CSV文件的地方运行python脚本,如果知道如何指定dtype@user18139在读取csv中的“col”后,可以使用df[“col”]=df[“col”].astype(str)或df[“col”]=df[“col”].astype(float)是列的名称。作为一种检查,您可以使用df.info()确认更改后的数据类型。