如何从 CSV 文件创建 Mysql 数据库
How to make Mysql database from CSV file
我想制作数据库,因为我的所有数据都是 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,而不是手动添加。
获取第一行作为字段名并将其存储在数组中。
示例:columns = csvData.head()
之后你可以这样做:
sql = "INSERT INTO table_name (".join(columns) + ") VALUES (the_values_from_csv)"
您可以直接将您的数据框保存为 sql table 和 df.to_sql,如下所示:
def parseCSV(filePath):
data = pd.read_csv(filePath)
data.to_sql('addresses', 'yoursqlconnection')
我想制作数据库,因为我的所有数据都是 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,而不是手动添加。
获取第一行作为字段名并将其存储在数组中。
示例:columns = csvData.head()
之后你可以这样做:
sql = "INSERT INTO table_name (".join(columns) + ") VALUES (the_values_from_csv)"
您可以直接将您的数据框保存为 sql table 和 df.to_sql,如下所示:
def parseCSV(filePath):
data = pd.read_csv(filePath)
data.to_sql('addresses', 'yoursqlconnection')