python - 如何遍历数据框并从值中构造一个字符串?
问题描述
我有一个示例数据框,如下所示:
import pandas as pd
df = pd.DataFrame({'name': ['John', 'Tom', 'Mary', 'Phil', 'Harry'],
'age': [20, 30, 40, 50, 60],
'credits':[4,6,2,3,4]})
我想用这些值创建一个 SQL INSERT 语句:
INSERT INTO credits_table VALUES ('John', 20, 4)
INSERT INTO credits_table VALUES ('Tom', 30, 6)
INSERT INTO credits_table VALUES ('Mary', 40, 2)
INSERT INTO credits_table VALUES ('Phil', 50, 3)
INSERT INTO credits_table VALUES ('Harry', 60, 4)
为此,我正在尝试以下操作:遍历每个数据框列并生成 INSERT INTO 语句:
for i in df.index:
print ('INSERT INTO credits VALUES (' + df.loc[i,'name'] + ','+ df.loc[i,'age'] + ','+df.loc[i,'credits']+ +')')
但是有些事情是错误的,它只是一次又一次地失败。有人可以帮我吗?
解决方案
for i in df.index:
print ('INSERT INTO credits VALUES (\'{}\', {}, {})'.format(df.loc[i,'name'], df.loc[i,'age'], df.loc[i,'credits']))
如果要将其插入到 sql 中,请考虑使用 - pandas.to_sql
。
推荐阅读
- html - 如何解决应用程序错误?
- css - 我在我的项目中导入 Bootstrap 但它不起作用
- javascript - 即使该文件位于模块之外,js lib如何读取他们的配置文件,技术的名称是什么
- database - TDengine插入使用taos_stmt apis
- performance-testing - JMeter 线程用户限制 - 并发执行 5000 个线程
- mysql - MariaDB 是否可以在没有键长度的情况下对 BLOB 列进行索引?
- charts - 在plotly python中为折线图的不同部分添加文本
- java - 有没有办法在java中将double转换为二进制
- kubernetes - 负载均衡到 Pod 的副本
- android - 存储访问框架与 Mediastore api