【问题标题】:Columns (0,1,3) have mixed types.Specify dtype option on import or set low_memory=False. When importing csv File列 (0,1,3) 具有混合类型。在导入时指定 dtype 选项或设置 low_memory=False。导入 csv 文件时
【发布时间】:2021-01-05 13:01:14
【问题描述】:

我正在使用 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 read_csv low_memory and dtype options,我知道为什么会发生这种情况,并且我的文件具有模棱两可的数据类型。

我可以通过以下方式解决这个问题:

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 文件相比,导入的时间确实更长,但未显示错误。

因此,从上面的讨论中,我可能知道为什么在 python 中加载 .xlsx 文件的时间比它的 .csv 对应文件大吗?还有什么时候使用 .csv 导入和 .xlsx 导入?

这是我导入的文件:

【问题讨论】:

    标签: python excel pandas


    【解决方案1】:

    Excel 文件“.xlsx”文件具有各种格式/xml 代码,pandas 必须“切碎”以获取数据(考虑可用于在 excel 中转换和可视化数据的所有功能)不可保存为 .csv,保存时会自动删除所有功能)。另一方面,“.csv”文件非常原始(如 .txt 文件),因此 pandas 不必为了获取数据而费尽心机。

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

    看看pandas 必须经过什么才能获取数据“A1”、“B1”等。因此,如果.csv 文件满足您的所有要求,您应该始终努力从文件中提取数据要求。任何数据类型格式化计算等都应该尽量在pandas中处理。我在这里专门谈论读取数据。


    就您遇到问题的原因而言,无法从您的屏幕截图中看出。除了在阅读时尝试指定dtypeslow_memory parse_dates 之外,还有几件事可以提供帮助:

    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
    

    【讨论】:

    • 您能建议您如何在导入之外指定 dtypes 吗?您可以在许多不会导入 CSV 文件的地方运行 python 脚本,知道如何指定 dtype 会很棒
    • @user18139 你可以使用 df[“col”] = df[“col”].astype(str) 或 df[“col”] = df[“col”].astype(int)或 df[“col”] = df[“col”].astype(float) 在读取 csv 后,其中“col”是列的名称。作为检查,您可以使用 df.info() 来确认更改后的 dtypes 是什么。
    猜你喜欢
    • 2019-05-14
    • 2022-12-08
    • 2012-03-04
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多