看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
现有以下 2020 年节假日的数据,需要将其插入数据库的 holiday 表里,holiday 除了以下三列,还有一个年份字段 year。
'''
节日 开始日期 结束日期
元旦 2020-01-01 2020-01-01
除夕 2020-01-24 2020-01-24
清明节 2020-04-04 2020-04-04
劳动节 2020-05-01 2020-05-01
端午节 2020-06-25 2020-06-25
国庆节 2020-10-01 2020-10-01
'''
读取数据:
import pandas as pd
df = pd.read_clipboard()
df.head()
'''
节日 开始日期 结束日期
0 元旦 2020-01-01 2020-01-01
1 除夕 2020-01-24 2020-01-24
2 清明节 2020-04-04 2020-04-04
3 劳动节 2020-05-01 2020-05-01
4 端午节 2020-06-25 2020-06-25
'''
然后对 DataFrame 进行迭代,生成 insert SQL 语句:
sql = ''
for i,r in df.iterrows():
r_sql = f"INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`)
VALUES ('{r['节日']}', '{r['结束日期'][:4]}', '{r['开始日期']}', '{r['结束日期']}');"
sql = sql + r_sql + '\n'
print(sql)
'''
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('元旦', '2020', '2020-01-01', '2020-01-01');
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('除夕', '2020', '2020-01-24', '2020-01-24');
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('清明节', '2020', '2020-04-04', '2020-04-04');
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('劳动节', '2020', '2020-05-01', '2020-05-01');
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('端午节', '2020', '2020-06-25', '2020-06-25');
INSERT INTO `holiday` (`holiday`, `year`, `start_date`, `end_date`) VALUES
('国庆节', '2020', '2020-10-01', '2020-10-01');
'''
生成后,可以复制这些 SQL 语句,执行。
(完)
注:此案例收录在《深入浅出Pandas:利用Python进行数据处理与分析》17.2.8 小节。
更新时间:2024-08-18 16:13:51 标签:pandas python sql