我正在使用以下代碼創建一個測驗 SQL 資料庫:
import sqlite3
connection = sqlite3.connect('tv.sqlite')
cursor = connection.cursor()
#Create database
sql_query = """ CREATE TABLE tvshows (
id integer PRIMARY KEY,
producer text NOT NULL,
language text NOT NULL,
title text NOT NULL
)"""
#Execute the SQL query
cursor.execute(sql_query)
我開始定義表格列。
但是,我想從我擁有的 CSV 匯入一個包含 50k 個條目的巨大資料庫。該 CSV 沒有標題(但即使有,我仍然有同樣的問題)。
我在網上找到了這段代碼:
import pandas
import sqlite3
connection = sqlite3.connect('tv.sqlite')
cursor = connection.cursor()
#Reads csv and converts to sql
df = pandas.read_csv('tvshows_db.csv')
df.to_sql('tv', connection)
這是我得到的:

在我沒有設定列名(它使用第一個電視節目條目作為標題值)及其值(型別、字符限制等)的情況下,它是如何創建資料庫的?我怎么能用 pandas.to_sql 做到這一點?
uj5u.com熱心網友回復:
它假設第一行值是標題并像這樣創建它。您可以在推送到 db 之前先設定資料幀標頭:
df = pandas.read_csv('tvshows_db.csv')
df.columns = ['col1', 'col2']
對于列型別,如果您在第一個代碼塊中創建一個表,您可以將if_exists引數設定為appendinto_sql()并且在寫入 db 時它將尊重列型別
df.to_sql('tv', connection, if_exists='append')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485340.html
