📅  最后修改于: 2023-12-03 15:09:32.305000             🧑  作者: Mango
在数据清洗和处理中,有时会遇到 NaN(Not a Number)的值。NaN代表缺失值或未知值,需要进行替换或删除。
一种常见的处理NaN的方法是将其替换为列中的众数(mode)。这样做的好处是,众数是最常见的值,可以更好地代表数据分布。
在 Python 中,可以使用 Pandas 库来实现将 NaN 替换为 mode。具体实现如下:
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, pd.np.nan, pd.np.nan],
})
# 找出每列的众数
mode = df.mode().iloc[0]
# 将 NaN 替换为众数
df = df.fillna(mode)
# 打印替换后的DataFrame
print(df)
这段代码中,我们首先创建了一个示例 DataFrame,其中的列 B 中有两个 NaN 值。
然后,使用 Pandas 的 mode() 函数找出了每列的众数,即列 A 中的 1 和列 B 中的 10。
接着,使用 fillna() 函数将 DataFrame 中的 NaN 值替换为众数。
最后,使用 print() 函数打印替换后的 DataFrame,输出结果如下:
A B
0 1 10.0
1 2 20.0
2 3 30.0
3 4 10.0
4 5 10.0
可以看到,原先的两个 NaN 值已被替换为 10,与列 B 的众数相同。
以上就是 Python 中将 pandas 列中的 NaN 替换为 mode 的方法。在实际数据处理中,应根据具体情况选择合适的处理方法。