【问题标题】:Error inserting values in SQL: Unknown column 'nan' in 'field list'在 SQL 中插入值时出错:“字段列表”中的未知列“nan”
【发布时间】:2022-01-06 13:55:27
【问题描述】:
for row in dfp.itertuples():
 cursor.execute('''
             INSERT INTO players (PID, NAME)
             VALUES (%s,%s)
             ''',
                (row.PID,
                 row.NAME)
              )

运行此代码后,我收到此错误:

mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'nan' in 'field list'

我应该怎么做才能解决这个错误?

【问题讨论】:

    标签: python mysql sql mysql-error-1054


    【解决方案1】:

    问题是数据框包含NaN 值;当传递给查询时,NaN 没有被引用,因为它是一个数字,但它会像这样被字符串化

    INSERT INTO players (PID, NAME) VALUES (1, NaN)
    

    并且数据库将未加引号的“字符串”解释为列名并且找不到该列。

    解决方案是在写入数据库之前替换或删除这些值,例如使用fillna 将它们替换为其他合适的值:

    for row in dfp.fillna(-1).itertuples():
     cursor.execute('''
                 INSERT INTO players (PID, NAME)
                 VALUES (%s,%s)
                 ''',
                    (row.PID,
                     row.NAME)
                  )
    

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 1970-01-01
      • 2016-01-01
      • 2018-01-05
      • 2018-03-12
      • 2014-05-26
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多