Deepseek与doubao|tongyi|wenxin三个大模型对比编写数据处理脚本

‌**DeepSeek在编写脚本方面的能力非常强大,尤其在编程、推理和数学计算方面展现出了超越普通AI的能力**‌。DeepSeek的核心优势在于其编程能力的显著提高,能够轻松应对前端脚本和后端逻辑的编写,大大降低了程序员编写代码的难度。

今天我们就对比下deepseek、豆包、通义千问、文心一言这四个进行一下对比,

对比的题目为:

《帮我写一个处理excel数据的python脚本,要求:100万条数据,去除重复数据,将处理好的数据存储到新的excel中。》

下面我们逐一看看那个AI的能力更优秀^_^

1、Deepseek

好的,我现在需要帮用户写一个处理Excel数据的Python脚本,具体要求是处理100万条数据,去重,然后存到新的Excel文件中。我得先理清楚思路,看看怎么一步步实现这个需求。

首先,用户的数据量很大,100万条,用普通的Excel处理方式可能不太行(非常棒棒),因为常规的库比如xlrd、openpyxl处理大数据可能效率不高,甚至无法支持。所以得考虑使用适合处理大数据的库,比如pandas。不过pandas在处理百万行数据时,虽然可行,但内存占用可能会很高,需要注意优化。

然后,去重的逻辑。用户可能指的是去除完全重复的行,或者根据某几列去重(非常棒)。这里用户没具体说明,所以假设是去除完全重复的行。在pandas中,可以用drop_duplicates()方法。不过需要注意,处理大数据时这个方法会不会有性能问题,可能需要分块处理或者优化参数。

存储到新的Excel中,同样要考虑文件格式。Excel的xlsx格式对于百万行数据来说,一个sheet可能放不下,因为Excel的单个sheet最大行数在104万左右(非常棒棒)。所以如果数据接近或超过这个数,可能需要分多个sheet或者使用xlsb格式。但pandas的to_excel方法可能不支持xlsb,可能需要用其他库,比如pyxlsb。不过用户可能希望用常规的格式,所以得提醒用户注意行数限制。

另外,处理大数据时,内存可能不足。可能需要逐块读取,比如使用pandas的chunksize参数(非常棒棒),分块读取和处理,然后再合并结果。不过去重的话,分块处理可能会导致无法全局去重,所以需要先读取所有数据,或者分块处理后再合并去重,但这样内存压力可能更大。这时候可能需要权衡,或者让用户确保数据可以分块处理,或者接受可能的内存使用。

接下来,具体步骤:
  1. 读取原始Excel文件。使用pandas的read_excel函数,可能需要指定engine='openpyxl',特别是xlsx文件。对于大文件,分块读取可能更高效,但要注意去重的全局性。

  2. 去重处理。使用drop_duplicates(),默认保留第一个出现的重复项。是否需要考虑某些列作为去重依据?用户没说明,所以先按整行去重。

  3. 写入新Excel文件。使用to_excel,但要注意xlsx的行数限制。100万条数据可能超过限制,所以需要检查处理后的数据行数是否超过104万。如果超过,可能需要分割到多个sheet,或者改用csv或其他格式。但用户明确要求存到Excel,可能需要提醒这一点。

另外,可能遇到的性能问题,比如内存不足,处理速度慢。可以建议使用更高效的数据类型,比如在读取时指定dtype,或者使用category类型减少内存占用。或者使用Dask库来处理大数据,但用户可能希望用pandas常规方法。

现在,编写代码的大纲:

  • 导入必要的库:pandas。

  • 读取Excel文件,可能需要分块,但这里如果内存允许,一次性读取可能更方便去重。

  • 去重。

  • 检查处理后的数据行数,如果超过104万,可能需要处理。

  • 保存到新文件,如果行数太多,可能需要分割或报错。

可能得代码结构:
python 复制代码
import pandas as pd

df = pd.read_excel('input.xlsx', engine='openpyxl')

df_clean = df.drop_duplicates()

df_clean.to_excel('output.xlsx', index=False)

但是,对于百万行数据,read_excel可能会很慢,甚至内存不够。这时候可能需要优化读取方式,比如使用chunksize,但分块读取的话,如何全局去重?

或者,考虑将Excel文件转换为csv处理,但用户给的是Excel,可能需要直接处理。

另外,pandas在读取大Excel文件时确实可能遇到性能问题,因为Excel文件的解析比CSV复杂。如果数据量极大,可能需要使用其他方法,比如先导出为csv,再用pandas处理。但用户可能希望直接处理Excel文件,所以只能尽量优化。

可能的优化措施:
  • 在读取时指定只需要的列,如果某些列不需要,可以省去。

  • 使用更高效的数据类型,比如在读取时设置dtype参数,减少内存占用。

  • 使用read_excel的参数,比如只读取需要的行或列。

但用户的数据是完整的100万行,所以可能需要全部读取。

另一个问题,Excel的文件格式,如果是xlsb,可能需要不同的引擎,比如pyxlsb,但pandas的read_excel是否支持?可能需要安装pyxlsb库,并在读取时指定engine='pyxlsb'。不过用户可能用的是xlsx格式,所以先按xlsx处理。

现在,考虑到数据量的问题,代码可能需要处理潜在的行数限制。例如,处理后的数据如果超过104万行,保存到xlsx时会出错,所以需要检查数据长度,并提示用户。

另外,保存到Excel时,可以指定不同的引擎,比如openpyxl,因为xlsxwriter可能不支持超过一定行数。

总结:

代码的大致流程是读取、去重、保存,但需要考虑性能和行数限制。需要添加错误处理,比如捕获行数超过限制的异常,并提示用户。

可能的代码:
python 复制代码
import pandas as pd

# 读取原始Excel文件

input_file = 'input.xlsx'

output_file = 'output.xlsx'

# 使用openpyxl引擎读取

df = pd.read_excel(input_file, engine='openpyxl')

# 去除重复行

df_clean = df.drop_duplicates()

# 检查行数是否超过Excel限制

max_rows = 1048576

if len(df_clean) > max_rows:

raise ValueError(f"处理后的数据行数({len(df_clean)})超过Excel单个sheet的最大行数({max_rows}),请考虑使用其他格式或分多个sheet保存。")

# 保存到新的Excel文件

df_clean.to_excel(output_file, index=False, engine='openpyxl')

print("处理完成!去除了{}条重复数据,剩余{}条。".format(len(df) - len(df_clean), len(df_clean)))
但是,这里有几个问题:
  1. read_excel拼写错误,正确是read_excel。

  2. drop_duplicates拼写错误。

  3. 保存时的engine参数在to_excel中是否存在?pandas的to_excel的engine参数可能不存在,需要确认。实际上,pandas的to_excel使用不同的引擎,通常由文件后缀决定,或者通过指定engine参数。例如,xlsx文件默认可能使用openpyxl或xlsxwriter,但需要安装相应的库。

另外,当数据量很大时,to_excel可能会非常慢,甚至内存不足。此时可以考虑使用xlsxwriter作为引擎,可能更高效,但需要测试。

此外,用户可能需要分块处理,但如何分块读取Excel并去重?分块读取的话,每次读取一部分数据,去重,但全局去重需要将所有数据加载到内存中,所以分块处理可能不适用,除非允许部分重复在分块之间未被检测到。所以,如果必须全局去重,可能必须一次性读取所有数据。

综上所述,可能的代码需要修正拼写错误,处理引擎问题,并添加行数检查。同时,提醒用户可能的内存和行数限制问题。

另外,处理时间可能会很长,需要让用户有心理准备,或者建议使用数据库或其他更适合大数据处理的方式,但用户可能希望用Python脚本处理。

所以最终的代码大致如下,同时需要包含错误处理和提示。

以下是处理百万条Excel数据的Python脚本,解决内存和行数限制问题:
python 复制代码
import pandas as pd
from tqdm import tqdm

def process_large_excel(input_path, output_path, chunk_size=100000):
    """
    处理大型Excel文件的重复数据
    
    参数:
    input_path: 输入文件路径
    output_path: 输出文件路径
    chunk_size: 每次处理的数据块大小(默认10万行)
    """
    
    # 初始化去重容器
    seen = set()
    header = True
    mode = 'w'  # 写入模式

    # 创建进度条
    with tqdm(total=100, desc='处理进度') as pbar:
        # 分块读取Excel文件
        for chunk in pd.read_excel(input_path, chunksize=chunk_size, engine='openpyxl'):
            # 去重处理
            mask = ~chunk.astype(str).apply(lambda x: hash(tuple(x)), axis=1).isin(seen)
            filtered = chunk[mask]
            
            # 更新已见记录
            seen.update(filtered.astype(str).apply(lambda x: hash(tuple(x)), axis=1))
            
            # 写入处理后的数据
            filtered.to_excel(output_path, 
                             index=False, 
                             header=header, 
                             mode=mode, 
                             engine='openpyxl')
            
            # 更新写入模式为追加
            mode = 'a'
            header = False
            
            # 更新进度条(假设总数据量100万)
            pbar.update(chunk_size/10000)  # 每处理10万行更新10%

        # 最终进度到100%
        pbar.n = 100
        pbar.refresh()

    print("\n处理完成!输出文件已保存至:", output_path)

if __name__ == "__main__":
    # 使用示例
    input_file = "large_data.xlsx"
    output_file = "cleaned_data.xlsx"
    
    # 执行处理
    try:
        process_large_excel(input_file, output_file)
    except Exception as e:
        print(f"处理过程中发生错误:{str(e)}")
    finally:
        # 清理临时资源
        if 'seen' in globals():
            del seen
脚本特点:

分块处理:使用Pandas的chunksize参数分批读取数据,避免内存溢出

哈希去重:通过哈希值快速识别重复记录,提升处理效率

进度显示:集成tqdm进度条,直观显示处理进度

异常处理:包含try-except块确保程序健壮性

内存优化:及时清理内存中的临时数据

使用前准备:

安装依赖库:
pip install pandas openpyxl tqdm
注意事项:
Excel行数限制:输出文件使用.xlsx格式时,单个Sheet最多支持1,048,576行

处理时间:百万级数据预计需要10-30分钟(取决于硬件配置)

数据验证:建议处理完成后抽样检查数据完整性

备用方案:如需处理更大数据集,建议改用数据库或Parquet格式

扩展建议:

对于超过Excel限制的数据,可将to_excel改为:

分割多个文件

filtered.to_excel(f"cleaned_data_part{chunk_index}.xlsx", ...)

如需根据特定列去重,可修改哈希计算逻辑:

hash(tuple(x[['关键列1', '关键列2']])) # 指定关键列

这个脚本通过分块处理和哈希算法优化,能够在普通PC上有效处理百万级数据,同时保持内存使用在可控范围内。

2、豆包doubao

以下是一个使用 Python 处理 Excel 数据的脚本,该脚本可以读取包含 100 万条数据的 Excel 文件,去除其中的重复数据,并将处理好的数据存储到一个新的 Excel 文件中。我们将使用 pandas 库来完成这些操作,因为 pandas 提供了简单而强大的工具来处理表格数据。

安装依赖库

在运行脚本之前,你需要确保已经安装了 pandas 和 openpyxl 库。可以使用以下命令进行安装:

python 复制代码
pip install pandas openpyxl
具体脚本如下:
python 复制代码
mport pandas as pd
def process_excel_data(input_file, output_file):
    try:
        # 读取 Excel 文件
        df = pd.read_excel(input_file)
        
        # 去除重复数据
        df = df.drop_duplicates()
        
        # 将处理好的数据保存到新的 Excel 文件中
        df.to_excel(output_file, index=False)
        
        print(f"数据处理完成,处理后的数据已保存到 {output_file}")
    except Exception as e:
        print(f"处理数据时出现错误: {e}")
if __name__ == "__main__":
    # 输入 Excel 文件的路径
    input_file = "input.xlsx"
    # 输出 Excel 文件的路径
    output_file = "output.xlsx"
    
    process_excel_data(input_file, output_file)
代码说明

导入库:导入 pandas 库,它是一个用于数据处理和分析的强大工具。
定义处理函数:process_excel_data 函数接受两个参数,input_file 是输入 Excel 文件的路径,output_file 是输出 Excel 文件的路径。
读取数据:使用 pd.read_excel 函数读取输入 Excel 文件中的数据,并将其存储在一个 DataFrame 对象中。
去除重复数据:使用 drop_duplicates 方法去除 DataFrame 中的重复行。
保存数据:使用 to_excel 方法将处理好的数据保存到新的 Excel 文件中,index=False 表示不保存行索引。
异常处理:使用 try-except 块捕获并处理可能出现的异常。
主程序:在 if name == "main": 块中,指定输入和输出文件的路径,并调用 process_excel_data 函数进行数据处理。
使用方法
将需要处理的 Excel 文件命名为 input.xlsx,并将其放在脚本所在的同一目录下。
运行脚本,处理后的数据将保存为 output.xlsx 文件。
请确保输入的 Excel 文件格式正确,并且数据量不超过系统的内存限制。如果数据量非常大,可能需要考虑分块处理数据。

3、通义千问tongyi

处理大量数据时,使用Pandas库是一个非常高效的选择。下面我将提供一个简单的Python脚本示例,该脚本读取包含100万条记录的Excel文件,去除其中的重复行,并将清洗后的数据保存到一个新的Excel文件中。在开始之前,请确保已经安装了pandas和openpyxl这两个库。如果未安装,可以通过pip命令来安装它们:

python 复制代码
pip install pandas openpyxl
接下来是具体的Python脚本代码:
python 复制代码
import pandas as pd

def remove_duplicates(input_file, output_file):
    # 读取原始数据
    print("正在加载数据...")
    data = pd.read_excel(input_file)

    # 显示原始数据的信息
    print(f"原始数据共有 {len(data)} 行")

    # 去除重复的数据
    print("正在进行去重操作...")
    unique_data = data.drop_duplicates()

    # 显示去重后的数据信息
    print(f"去重后数据共有 {len(unique_data)} 行")

    # 将结果写入新的Excel文件
    print("正在保存去重后的数据...")
    unique_data.to_excel(output_file, index=False)
    
    print("完成!")
# 调用函数

input_file_path = 'path/to/your/input.xlsx' # 修改为你的输入文件路径

output_file_path = 'path/to/your/output.xlsx' # 修改为你希望输出的文件路径

remove_duplicates(input_file_path, output_file_path)

使用说明:

将上述代码保存为 .py 文件。

修改 input_file_path 和 output_file_path 变量以指向你的具体文件位置。

运行此脚本。

注意事项:

确保你的计算机有足够的内存来处理如此大的数据集。对于特别巨大的数据集(如超过百万行),可能需要考虑使用更高级的数据处理技术或工具,例如Dask。

如果你的数据集具有特定列作为唯一标识符,则可以在 drop_duplicates() 函数中指定这些列名,例如 data.drop_duplicates(subset=['column_name']) 来基于特定列进行去重。

此脚本假设所有列都参与去重判断。如果你只想根据某些列来判断是否重复,可以调整 drop_duplicates() 的参数。

对于非常大的文件,建议检查是否有足够的硬盘空间用于存储新生成的文件。

4、文心一言

当然!为了处理100万条数据并去除重复项,我们可以使用Python的pandas库。pandas库非常适合处理和分析大型数据集。下面是一个示例脚本,展示如何读取Excel文件、去除重复数据并将结果存储到新的Excel文件中。

首先,确保你已经安装了pandas和openpyxl库。如果没有安装,可以使用以下命令进行安装:

python 复制代码
pip install pandas openpyxl
下面是完整的Python脚本:
python 复制代码
import pandas as pd
 
# 读取Excel文件
input_file = 'input_data.xlsx'  # 输入文件名
output_file = 'output_data.xlsx'  # 输出文件名
 
# 使用 pandas 读取 Excel 文件中的数据
df = pd.read_excel(input_file, engine='openpyxl')
 
# 去除重复数据,这里假设我们基于所有列去除重复项
df_unique = df.drop_duplicates()
 
# 将处理好的数据存储到新的 Excel 文件中
df_unique.to_excel(output_file, index=False, engine='openpyxl')
 
print(f"处理完成,去除重复数据后的数据已保存到 {output_file}")
代码说明:

读取Excel文件:

pd.read_excel(input_file, engine='openpyxl'):使用pandas的read_excel函数读取Excel文件。engine='openpyxl'参数指定使用openpyxl引擎来处理.xlsx文件。

去除重复数据:

df.drop_duplicates():去除数据框中的所有重复行。默认情况下,它会基于所有列去除重复项。如果你只想基于某些特定列去除重复项,可以传递一个列名的列表,例如df.drop_duplicates(subset=['column1', 'column2'])。

存储到新的Excel文件中:

df_unique.to_excel(output_file, index=False, engine='openpyxl'):将去重后的数据框保存到新的Excel文件中。index=False表示不保存行索引。

运行脚本:

确保你的输入Excel文件(例如input_data.xlsx)与脚本在同一目录下,或者提供正确的文件路径。然后运行脚本,处理后的数据将保存到output_data.xlsx文件中。

性能注意事项:

处理100万条数据可能需要一些时间,具体取决于你的硬件配置和数据的复杂性。

如果数据量非常大,可以考虑使用更高效的数据处理工具或方法,例如Dask或Apache Spark。

希望这个脚本能满足你的需求!如果有任何问题,请随时提问。

总结:通过四个回答对比,确实Deepseek的回答在逻辑处理方面更全面一些,首先分析问题的语义和逻辑,这里面有哪些可能地方,比如:100w条数据excel来处理可能不行,其他三个模型的回答没有提及这方面,deepseek的回答还有其他异常的逻辑处理,另外还给处理处理步骤,每一步怎么做,做什么,让提问的人能够清晰的了解如何编写,怎么编写。

Deepseek还特意提到了硬件配置会影响性能,这就是更难能可贵的地方,Deepseek确实在这块的处理更富有逻辑和细腻。

大家通过上面的结果对比,有什么看法,希望大家畅所欲言。

相关推荐
EterNity_TiMe_7 分钟前
【人工智能】deepseek R1模型在蓝耘智算平台的搭建与机器学习的探索
人工智能·python·机器学习·deepseek
zhanyd17 分钟前
告别DeepSeek官方的服务器繁忙~腾讯云DeepSeek-V3/R1无限免费调用~不用安装任何东西~小白一学就会~
腾讯云·白嫖·deepseek·deepseek-r1·deepseek api
每天看一遍,防止恋爱&&堕落33 分钟前
5、大模型的记忆与缓存
缓存·langchain·大模型·llm·agent·大模型缓存
LucianaiB1 小时前
深度对比析:DeepSeek服务优胜本地部署、网页版与蓝耘GPU智算云平台的较量以及删除本地部署的过程
python·ai·gpu·本地部署·deepseek
霍格沃兹测试开发学社测试人社区2 小时前
人工智能丨Deepseek vs 传统测试工具:谁将主导软件质量保障?
软件测试·人工智能·测试开发·测试工具·deepseek
AI-智能2 小时前
DeepSeek入门到精通!(清华大学104页ppt下载)
人工智能·程序员·langchain·编程·llama·milvus·deepseek
Francek Chen2 小时前
【DeepSeek】在本地计算机上部署DeepSeek-R1大模型实战(完整版)
人工智能·深度学习·语言模型·ai编程·deepseek
FF-Studio3 小时前
读 DeepSeek-R1 论文笔记
论文阅读·人工智能·深度学习·机器学习·语言模型·自然语言处理·deepseek
羑悻的小杀马特3 小时前
蓝耘智算平台硬核部署 DeepSeek, 解锁 AI 内在的无限潜能
人工智能·ai大模型·deepseek