看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
如果我们的数据保存在数据库中,需要对一些数据进行更新,我们可以将需要更新的数据整理在一个 Excel 或者 CSV 文件中,再利用 pandas 生成一个更新数据库的 SQL 文件。来看看这种操作如何进行。
假定我们的要更新的数据在 team.csv 当中,读取到 DataFrame 中的代码如下:
import pandas as pd
df = pd.read_csv('https://gairuo.com/file/data/team.csv')
df.head()
'''
name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
'''
我们要将 Q1 和 Q2 的成绩在数据库中进行更新,需要指编写如下的 SQl,将生成一个 sql 文件,用于执行。
UPDATE team SET Q1 = 89, Q2 = 21 WHERE name = Liver;
我们可以先筛选 DataFrame 中有用的三列:name、Q1、Q2,然后利用迭代的方式在文件上下文中生成一个 SQL 文件。
先筛选三列:
rec = df.filter(['name', 'Q1', 'Q2'])
rec
# ...
接着迭代生成 sql 文件:
with open('update_team.sql', 'w') as f:
for _, r in rec.iterrows():
sql = f"UPDATE team SET Q1 = {r.Q1}, Q2 = {r.Q2} WHERE name = '{r['name']}';\n"
f.write(sql)
此时就生成一个 update_team.sql,可以用它云数据库执行执行,操作更新。
这样就完成了需求。
(完)
更新时间:2025-01-05 08:24:08 标签:polars python 数据 sql