【问题标题】:How to make Mysql database from CSV file如何从 CSV 文件制作 Mysql 数据库
【发布时间】:2021-03-09 04:10:01
【问题描述】:

我想创建数据库,因为我的所有数据都是 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,而不是手动添加。

【问题讨论】:

    标签: python python-3.x pandas machine-learning data-science


    【解决方案1】:

    获取第一行作为字段名并将其存储在数组中。 示例:columns = csvData.head() 之后你可以这样做:

    sql = "INSERT INTO table_name (".join(columns) + ") VALUES (the_values_from_csv)"
    

    【讨论】:

      【解决方案2】:

      您可以使用 df.to_sql 将数据框直接保存为 sql 表,如下所示:

      def parseCSV(filePath):
            data = pd.read_csv(filePath)
            data.to_sql('addresses', 'yoursqlconnection')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-03
        • 1970-01-01
        • 2016-11-17
        • 2019-12-08
        • 1970-01-01
        • 1970-01-01
        • 2012-01-22
        相关资源
        最近更新 更多