当使用AWS Lambda和pandas.to_sql方法时,您可能会遇到MySQL数据库表已成功创建但无法将数据插入到已创建表中的问题。这可能是由于pandas默认将NaN值转换为NULL值,而MySQL默认会禁止向表中插入NULL值。
要解决这个问题,您可以通过在to_sql方法中设置if_exists参数为'append'来解决。如下面的代码示例所示:
import pandas as pd
from sqlalchemy import create_engine
# 连接到MySQL数据库
engine = create_engine('mysql+pymysql://:@/')
# 读取数据到pandas DataFrame
data = pd.read_csv('data.csv')
# 将数据插入MySQL表
data.to_sql(name='table_name', con=engine, if_exists='append', index=False)
在上面的代码示例中,我们将if_exists参数设置为'append',它会告诉pandas向MySQL表中追加数据而不是覆盖已有数据。同时,设置index参数为False以避免在表中插入索引。
通过将if_exists参数设置为'append',您可以成功将数据插入MySQL表中。