如何在 Pandas DataFrame 的列中将所有 NaN 值替换为零
当我们处理大型数据集时,有时数据集中会有 NaN
值要用某个平均值或合适的值替换。例如,你有一个学生评分列表,有些学生没有参加测验,因此系统自动输入了 NaN
而不是 0.0。下面列出了完成此任务的不同方法。
在以下各节中,我们将使用相同的 DataFrame
,如下所示:
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
print(df)
以下是等级为 NaN
的 DataFrame
。
name percentage grade
0 Oliver 90 88.0
1 Harry 99 NaN
2 George 50 95.0
3 Noah 65 NaN
df.fillna()
方法将所有 NaN 值替换为零
让我们借助 df.fillna()
方法替换 NaN 值。
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df = df.fillna(0)
print(df)
以下是将 NaN
替换为 0
的输出。
name percentage grade
0 Oliver 90 88.0
1 Harry 99 0.0
2 George 50 95.0
3 Noah 65 0.0
df.fillna()
方法用给定值填充 NaN 值。它不会更改对象数据,但默认情况下会返回一个新的 DataFrame,除非将 inplace
参数设置为 True。
我们可以通过设置 inplace
参数为 True
来重写上述代码。
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)
df.replace()
方法
此方法与 df.fillna()
相同,将 NaN
替换为 0
。df.replace()
也可用于替换其他数字。让我们看一下代码。
import pandas as pd
import numpy as np
data = {
"name": ["Oliver", "Harry", "George", "Noah"],
"percentage": [90, 99, 50, 65],
"grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
nan_replaced = df.replace(np.nan, 0)
print(nan_replaced)
以下是输出。
name percentage grade
0 Oliver 90 88.0
1 Harry 99 0.0
2 George 50 95.0
3 Noah 65 0.0
相关文章
Pandas 中的 GroupBy 应用
发布时间:2024/04/23 浏览次数:181 分类:Python
-
本文演示了什么是 GroupBy-Apply 行为以及如何在 Pandas 中按数据分组和应用函数。
Pandas 中的 GroupBy 和聚合多列数据
发布时间:2024/04/23 浏览次数:189 分类:Python
-
本教程演示了基于多列对数据进行分组,并将聚合方法应用于 Python 中 Pandas 数据框中的分组数据。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:191 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
如何从 Pandas 的日期时间列中提取月份和年份
发布时间:2024/04/23 浏览次数:124 分类:Python
-
我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。
如何检查 NaN 是否存在于 Pandas DataFrame 中
发布时间:2024/04/23 浏览次数:188 分类:Python
-
我们可以使用 isnull()和 isna()方法检查 Pandas DataFrame 中是否存在 NaN。