使用Pandas DataFrame列或列表更新MySQL表列

时间:2019-02-06 21:49:44

标签: python pandas sqlalchemy

我正在尝试从mySQL的表中读取几列,并在做一些工作(特别是检查另外2列中的空值)之后对其中的一列进行一些更改。

我正在将所有数据读入pandas数据框中,并使我对该数据框的操作也很好。

所以现在我有了一个数据框列,这就是我希望的样子,但是我似乎无法正确地将该数据框列(或列表,如果需要的话)写回到mySQL表中。

import pandas as pd
import sqlalchemy as sql
import math

connect_string = 'mysql+pymysql://server:username@localhost/database'

sql_engine = sql.create_engine(connect_string)

query = "SELECT column1, column2, nullPresent FROM table1"

df = pd.read_sql_query(query, sql_engine)

column1Null= df['column1'].isnull()
column2Null= df['column2'].isnull()
df['nullPresent'][column1Null] = 1
df['nullPresent'][column2Null] = 1


nonNullToZero = df['nullPresent'].isnull()
df['nullPresent'][nonNullToZero] = 0


nullList = []
nullList = df['nullPresent']

# I've tried this, but it throws back errors:
sql.update(table1).values(nullPresent = nullList)

如果我在开头打印nullPresent,则每个值均为“ None”。 如果我在末尾打印nullPresent,它将填充0和1。

我要做的就是更新mySQL表以包含nullPresent的新值。

0 个答案:

没有答案