首页 > 解决方案 > 替换 Pandas 数据框中的值

问题描述

我以为我理解了替换功能,但似乎我没有。请在下面查看我的代码。我只想用 NaN 替换所有 -999 值(或者让 NULL 更有意义?)但输出在所有数据帧中仍然包含 -999。我错过了什么?

          def SQLtoPandas(Connection,SQLString):
                df =pd.read_sql(SQLString, con=Connection)
                return df

            WeatherString = "select * FROM weather" 
    dfWeather = SQLtoPandas(Connection, WeatherString)

            RainkindsString = "select * FROM Rainkinds" 
    dfRainkinds = SQLtoPandas(Connection, RainkindsString)

            StationsString = "select * FROM Stations" 
    dfStations = SQLtoPandas(Connection, StationsString)

            #here is the important part. As stated, maybe replacing wiht NULL makesm ore sense? 
dfWeather.replace(-999, 0)

            #---------------------------Output Data---------------------------------------- 
        def DatenAnalyse():    
                pd.set_option('display.max_columns', None)  

                print("\n --> Zusammenfassung Wetterdaten <-- \n" )
                print(dfWeather.describe())
                print("\n --> Beispiel Wetterdaten <-- \n" )
                print(dfWeather.head(10))

                print("\n ----------------------------------------------------------------")
                print("\n \n --> Zusammenfassung Regenarten <-- \n" )
                print(dfRainkinds.describe())
                print("\n --> Beispiel Regenarten <-- \n" )
                print(dfRainkinds.head(10))

                print("\n ----------------------------------------------------------------")
                print("\n \n --> Zusammenfassung Stationen <-- \n" )
                print(dfStations.describe())
                print("\n --> Beispiel Stationen <-- \n" )
                print(dfStations.head(10))

            DatenAnalyse()

标签: pythonpandasdataframereplace

解决方案


我认为您应该使用以下代码:

dfWeather = dfWeather.replace(-999, np.nan)

推荐阅读