如何从 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')