我正在尝试从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的新值。