Вставка данных из фрейма данных Pandas в Sqlite с помощью запроса Sqlite - PullRequest
1 голос
/ 24 сентября 2019

благодарен за вашу помощь.Я пытаюсь взять серию очищенных твитов и загрузить их в базу данных sqlite.Я могу сделать эту работу, используя pandas.DataFrame.to_sql, но в идеале я хотел бы сделать это с помощью SQL-запросов.Когда я запускаю это, я получаю сообщение об ошибке:

blogs=open("clean_tweet.csv","r").read().decode("ISO-8859-1")
blogs=unicodedata.normalize("NFKC", blogs).encode("ascii", "ignore").lower()

alldata = blogs

tokenizer=RegexpTokenizer(r'\w+')
tokens=tokenizer.tokenize(alldata)

conn = sqlite3.connect('test.sqlite')

for token in tokens:
    conn.execute("INSERT INTO unigram_trial (word_trial) VALUES (?)", (str(token), ))

    conn.commit()

Используя это, я могу вставить все токены в одну строку таблицы, но она не будет вставлена ​​как отдельные слова в отдельные строки.

Я что-то упустил?Большое спасибо за любую помощь, вы можете предоставить!

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Команда вставки с sqlite3 всегда немного смущает меня, она всегда ожидает одну строку данных.Простой цикл for над списком токенов должен выполнять:

для токена в токене: conn.execute («INSERT INTO unigram_trial (word_trial) VALUES (?)», (Str (token),)) conn.commit()

Плохое форматирование на моем телефоне

0 голосов
/ 24 сентября 2019

что вы можете сделать, это создать функцию для запуска ее в качестве DataFrame для каждого вызова:

def run_query(q):
    with sqlite3.connect('database.sqlite') as conn:
        return pd.read_sql_query(q, conn)


# view columns in table (or whatever you want to call with SQL syntax)
query = "SELECT * FROM database"
df = run_query(query)
for i,v in enumerate(query):
    print(i,v)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...