You need to enable JavaScript to run this app. 如何将Pandas DataFrame导入SQLite表?pd读取函数导入有何差异
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame导入SQLite表?pd读取函数导入有何差异

已加载DataFrame写入现有SQLite数据表的操作步骤
  • 第一步:为无列名的DataFrame匹配数据库字段
    你当前加载的DataFrame默认是0/1/2/3的数字列名,需要先将列名和songs表的非自增字段名、顺序一一对应,避免写入时数据错位、字段不匹配报错:
    data.columns = ["execution_id", "song_id", "artist_id", "song_title"]
    
    注意:你现有建表代码中引用了未定义的sql_create_users_table变量,运行前需要删除该行或补充对应的建表SQL,否则会触发运行报错
  • 第二步:使用pandas内置的to_sql方法完成写入
    因为songs表已经提前创建完成,需要将if_exists参数设为追加模式,不要重建表覆盖原有结构,同时关闭索引写入匹配自增主键的逻辑:
    # 传入和建表操作同一个数据库连接对象
    data.to_sql(
        name="songs",
        con=conn,
        if_exists="append",  # 向已有表追加数据,不会改动原有表结构
        index=False  # 不写入DataFrame自带的数字索引,匹配数据库自增id的设计
    )
    
    小提示:写入操作要使用和建表操作同一个数据库连接对象,避免出现连接不同步、数据未提交的问题
pd.read_table与pd.read_csv在数据导库场景的使用差异
  • 底层无本质区别:两个函数是pandas同一套文本解析引擎封装的功能,核心读取逻辑、支持的参数类型、输出结果的格式完全一致,不存在功能或性能上的根本差异。
  • 仅默认参数存在区别:
    • pd.read_csv默认分隔符为半角逗号,,专门适配标准CSV格式文件
    • pd.read_table默认分隔符为半角制表符\t,最初设计用来适配TSV格式文件
  • 自定义分隔符场景下完全等效:只要手动指定相同的分隔符参数,两个函数读取得到的DataFrame结果完全一致,后续写入数据库的流程没有任何区别。比如你当前用作为分隔符的场景,不管选哪个函数,只要传入sep='<SEP>'参数,读取效果完全相同。
  • 实际选型建议:读标准CSV/TSV格式文件时,选择对应匹配默认分隔符的函数可以减少手动传参的操作;读自定义分隔符的文件时,两个函数可以任意选择,不需要刻意区分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 13:54:10