gpt4 book ai didi

mysql - 使用 to_sql 时如何防止将第一行 Pandas DataFrame 用作列名

转载 作者:行者123 更新时间:2023-11-29 05:14:07 29 4
gpt4 key购买 nike

我有一个从 CSV 文件加载的数据框,其中包含一个标题行。从 read_csv 分配返回的数据帧后,我尝试使用 SQLAlchemy 引擎将行添加到 MySQL 数据库表,我的方法调用如下所示:

my_dataframe.to_sql(name="my_table",
con=alch_engine,
if_exists="append",
chunksize=50,
index=False,
index_label=None)

但是,该表已经存在,并且数据框 header 的值与列名不匹配,因此我收到 MySQL 错误(1054,“'field_list' 中的未知列'Col1'”)

我根本不想使用第一行并在不指定列名的情况下运行插入查询。我还没有从 Pandas 手册中找到解决方案。

谢谢你的帮助,

最佳答案

据我所知,您不能使用 .to_sql() 来做到这一点。但是您可以修改数据框以匹配表中的列名。如果 db_cols 是一个包含名称的列表/数组/系列/可迭代对象,则应该这样做:

(my_dataframe
.rename(columns=dict(zip(df.columns, db_cols)))
.to_sql(name="my_table",
con=alch_engine,
if_exists="append",
chunksize=50,
index=False,
index_label=None))

关于mysql - 使用 to_sql 时如何防止将第一行 Pandas DataFrame 用作列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486721/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com