You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决DtypeWarning列(23)混合类型警告?已试low_memory=False无效

解决Pandas读取CSV的DtypeWarning警告问题

问题说明

运行脚本时弹出警告:DtypeWarning: Columns (23) have mixed types. Specify dtype option on import or set low_memory=False,虽然能生成目标文件,但警告需要消除。之前试过在测试代码里用low_memory=False但没生效,得在现有脚本里找对位置修正。

解决方案

你之前的问题是没在脚本实际读取文件的代码行加参数,脚本里真正读取CSV的是mydata = pd.read_csv(f)这一行,把参数加在这里就行,有两种可选方案:

方案1:关闭分块类型推断(简单直接)

把读取CSV的代码改成:

mydata = pd.read_csv(f, low_memory=False)

这个参数会让Pandas不采用分块读取推断类型的逻辑,避免因分块时类型不一致触发警告。

方案2:指定第23列的类型(更严谨)

如果你清楚第23列的正确类型(比如是字符串),可以直接指定dtype,从根源避免类型混合问题:

# 示例:假设第23列是字符串类型,可根据实际情况修改类型
mydata = pd.read_csv(f, dtype={23: str})

修改后的完整脚本

import os
import pandas as pd
import tkinter
from tkinter import messagebox

root = tkinter.Tk()
root.withdraw()


directory = 'C:/path'
ext = ('.csv')

for filename in os.listdir(directory):
    f = os.path.join(directory, filename)

    if f.endswith(ext):

        head_tail = os.path.split(f)
        head_tail1 = 'C:/Output'
        k =head_tail[1]
        r=k.split(".")[0]

        p=head_tail1 + "/" + r + " - .csv"
        # 此处添加low_memory=False参数,替换原读取代码
        mydata = pd.read_csv(f, low_memory=False)

        # 提取指定列并处理
        new = mydata[["A","B","C","D"]]
        new = new.rename(columns={'D': 'F'})
        new['F'] = 1
        print(new.columns)
        new["B"] = (pd.to_datetime(new["B"], format="%d-%b",  errors="coerce").dt.strftime("%#m-%#d").fillna(new["B"]))
        new.to_csv(p ,index=False)

        # 合并列并统计
        merge_columns = ['A', 'B', 'C']
        merged_col = ''.join(merge_columns).replace('ABC', 'G')
        new[merged_col] = new[merge_columns].astype(str).apply(lambda x: '.'.join(x), axis=1)
        new.drop(merge_columns, axis=1, inplace=True)
        new = new.groupby(merged_col).count().reset_index()
        new.to_csv(p, index=False)

        messagebox.showinfo("Parts has been counted", "New csv file can be found in C:/Path")

内容的提问来源于stack exchange,提问作者QuickSilver42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:05:15