首页 > 解决方案 > 将 csv 记录提交到数据库列时避免数据框中的 for 循环

问题描述

我正在尝试读取 csv 中的参数并使用 DataFrames 将其提交到数据库。

data = pd.read_csv(file)
data.to_csv(str(target_folder) + str(data['project_id'].iloc[0]) + '_' + str(file_name))
project_id = str(data['project_id'].iloc[0])
df = pd.DataFrame(data, columns=['project_id', 'class', 'id', 'material'])
for row in df.itertuples():
    cur.execute("INSERT INTO idea2 (project_id, class, id, material) VALUES (%s,%s,%s,%s)",
                    (row.project_id, row.rate_voltage, row.frequency, row.material))
conn.commit()

我们可以在没有 for 循环的情况下达到同样的效果吗?

标签: pythonpandasdataframe

解决方案


只要列名匹配,这应该有效:

df.to_sql("idea2", conn)

请参阅:DataFrame.to_sql了解更多详情。


推荐阅读