python - 如何从 CSV 文件制作 Mysql 数据库
问题描述
我想制作数据库,因为我的所有数据都是 CSV 格式的。有 160 列和 15 行。由于列更多,因此手动编写名称非常困难,我想这样做就像从 csv 文件中获取列名并将其存储在我这样做的变量中。我的列名现在在一个变量中。但我无法将这些值分配给数据库列。
def parseCSV(filePath):
# CVS Column Names
data = pd.read_csv(filePath)
column = data.columns
# Use Pandas to parse the CSV file
csvData = pd.read_csv(filePath,names=column, header=None)
# Loop through the Rows
# for i,row in csvData.iterrows():
# sql = "INSERT INTO addresses (first_name, last_name, address, street, state, zip) VALUES (%s, %s, %s, %s, %s, %s)"
# value = (row['first_name'],row['last_name'],row['address'],row['street'],row['state'],str(row['zip']))
# mycursor.execute(sql, value, if_exists='append')
# mydb.commit()
# print(i,row['first_name'],row['last_name'],row['address'],row['street'],row['state'],row['zip'])
我评论那些硬编码的行。我希望这个列名来自 CSV,而不是手动添加。
解决方案
您可以使用 df.to_sql 将数据框直接保存为 sql 表,如下所示:
def parseCSV(filePath):
data = pd.read_csv(filePath)
data.to_sql('addresses', 'yoursqlconnection')
推荐阅读
- azure - 带有 Azure 应用程序网关和虚拟机的 Azure DevOps 发布管道
- python - Pivoting python
- java - 如何在kafka中加入两个不同的主题
- c++ - 使用 -fsanitize=address 编译的 c++ 代码崩溃
- javascript - Laravel:当我添加所需的规则时,FormRequest 验证失败
- php - 根据机会百分比的 PHP 彩票
- tcpdf - TCDPF 用 png 图像渲染 pdf,透明 png 的问题
- system-verilog - System Verilog 中的覆盖点
- angular - 当相同组件的两个实例以角度 6 出现在单个页面中时,检测组件外部的点击
- c# - 请求 URL 太长 HTTP 错误 414。请求 URL 太长