pandas 填充 nan 值-ag捕鱼王app官网

pandas 填充 nan 值

作者:迹忆客 最近更新:2024/04/23 浏览次数:

本教程解释了我们如何使用 dataframe.fillna() 方法用指定的值填充 nan 值。

我们将在本文中使用下面的 dataframe。

import numpy as np
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.dataframe(
    {
        "roll no": [501, 502, np.nan, 504, 505, 506],
        "name": ["jennifer", "travis", "bob", "emma", "luna", "anish"],
        "income(in $)": [200, 400, np.nan, 30, np.nan, np.nan],
        "age": [17, 18, np.nan, 16, 18, np.nan],
    }
)
print(student_df)

输出:

   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      nan       bob           nan   nan
3    504.0      emma          30.0  16.0
4    505.0      luna           nan  18.0
5    506.0     anish           nan   nan

dataframe.fillna() 方法

语法

dataframe.fillna(
    value=none, method=none, axis=none, inplace=false, limit=none, downcast=none
)

dataframe.fillna() 方法使我们能够用指定的值或方法来填充 dataframe 中的 nan 值。


使用 dataframe.fillna() 方法用指定的值填充整个 dataframe

import numpy as np
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.dataframe(
    {
        "roll no": [501, 502, np.nan, 504, 505, 506],
        "name": ["jennifer", "travis", "bob", "emma", "luna", "anish"],
        "income(in $)": [200, 400, np.nan, 30, np.nan, np.nan],
        "age": [17, 18, np.nan, 16, 18, np.nan],
    }
)
filled_df = student_df.fillna(0)
print("dataframe with nan values")
print(student_df, "\n")
print("after applying fillna() to the dataframe:")
print(filled_df, "\n")

输出:

dataframe with nan values
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      nan       bob           nan   nan
3    504.0      emma          30.0  16.0
4    505.0      luna           nan  18.0
5    506.0     anish           nan   nan 
after applying fillna() to the dataframe:
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      0.0       bob           0.0   0.0
3    504.0      emma          30.0  16.0
4    505.0      luna           0.0  18.0
5    506.0     anish           0.0   0.0 

它将 dataframe student_df 中的所有 nan 值替换为 0,该值作为参数传递给 dataframe.fillna() 方法。

import numpy as np
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.dataframe(
    {
        "roll no": [501, 502, np.nan, 504, 505, 506],
        "name": ["jennifer", "travis", "bob", "emma", "luna", "anish"],
        "income(in $)": [200, 400, np.nan, 30, np.nan, np.nan],
        "age": [17, 18, np.nan, 16, 18, np.nan],
    }
)
filled_df = student_df.fillna(method="ffill")
print("dataframe with nan values")
print(student_df, "\n")
print("after applying fillna() to the dataframe:")
print(filled_df, "\n")

输出:

dataframe with nan values
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      nan       bob           nan   nan
3    504.0      emma          30.0  16.0
4    505.0      luna           nan  18.0
5    506.0     anish           nan   nan 
after applying fillna() to the dataframe:
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2    502.0       bob         400.0  18.0
3    504.0      emma          30.0  16.0
4    505.0      luna          30.0  18.0
5    506.0     anish          30.0  18.0 

它将所有 student_df 中的 nan 值填入与 nan 值相同列的 nan 值之前的值。


用指定的值填充指定列的 nan

为了用指定的值来填充特定的值,我们向 fillna() 方法传递一个字典,以列名作为键,以该列的 nan 值作为值。

import numpy as np
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.dataframe(
    {
        "roll no": [501, 502, np.nan, 504, 505, 506],
        "name": ["jennifer", "travis", "bob", "emma", "luna", "anish"],
        "income(in $)": [200, 400, np.nan, 300, np.nan, np.nan],
        "age": [17, 18, np.nan, 16, 18, np.nan],
    }
)
filled_df = student_df.fillna({"age": 17, "income(in $)": 300})
print("dataframe with nan values")
print(student_df, "\n")
print("after applying fillna() to the dataframe:")
print(filled_df, "\n")

输出:

dataframe with nan values
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      nan       bob           nan   nan
3    504.0      emma         300.0  16.0
4    505.0      luna           nan  18.0
5    506.0     anish           nan   nan 
after applying fillna() to the dataframe:
   roll no      name  income(in $)   age
0    501.0  jennifer         200.0  17.0
1    502.0    travis         400.0  18.0
2      nan       bob         300.0  17.0
3    504.0      emma         300.0  16.0
4    505.0      luna         300.0  18.0
5    506.0     anish         300.0  17.0 

它将 age 列中的所有 nan 值填充为 17,将 income(in $) 列中的所有 nan 值填充为 300。roll no 栏中的 nan 值保持不变。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图