首页 > 解决方案 > 如何使用 pandas 替换 csv 文件中的 NAN 值,然后将其存储到 MySQL 中?

问题描述

我正在尝试使用 python pandas 将 csv 文件数据存储到 mysql 中。

我的 csv 文件有一个“NAN”和“-INF”值,所以我想将它的值分别更改为 0 和 -999。

但是,现在我一直在尝试将“NAN”转换为 0。

已经做了一些谷歌,但仍然无法弄清楚如何去做。

    import pandas as pd
    import mysql.connector
    import sqlalchemy

    df = pd.read_csv("test.csv")
    df1 = df.replace(to_replace="NAN", value="-", inplace=True)

    database_username = 'root'
    database_password = 'password'
    database_ip       = '127.0.0.1'
    database_name     = 'sampledb'
    database_connection = sqlalchemy.create_engine('mysql+mysqlconnector://{0}: 
                                         {1}@{2}/{3}'.format(database_username, 
                                         database_password, database_ip, 
                                         database_name), pool_recycle=1, 
                                         pool_timeout=57600).connect()

   df.to_sql(con=database_connection, name='test', 
             if_exists='append',chunksize=100)

   df1.to_sql(con=database_connection, name='test', 
              if_exists='append',chunksize=100)
   database_connection.close()

标签: mysqlpython-3.x

解决方案


好吧,显然我的数据中的“NAN”和“-INF”类似于“NAN”。“-INF”也是如此。“NAN”和“-INF”前面有空格。更改编码后跟随数据。我能够将“NAN”和“-INF”值更改为 0。


推荐阅读