📌  相关文章
📜  在Python Pandas 中的多个列中填充(1)

📅  最后修改于: 2023-12-03 15:23:25.715000             🧑  作者: Mango

在Python Pandas中的多个列中填充

在数据分析中,往往需要对含有缺失值的数据进行填充。Pandas是Python中非常流行的数据分析库,它也提供了很多填充函数来处理含有缺失值的数据。

数据集准备

首先我们需要准备一个含有缺失值的数据集作为我们的样例数据。下面的代码通过pandas.DataFrame()方法生成一个数据集df,其中包含两个含有缺失值的列,并打印前10行数据:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1, 2, np.nan, 4, 5], 
                   'B':[6, np.nan, 8, np.nan, 10], 
                   'C':[11, 12, 13, 14, 15]})
print(df.head(10))

输出结果为:

     A     B   C
0  1.0   6.0  11
1  2.0   NaN  12
2  NaN   8.0  13
3  4.0   NaN  14
4  5.0  10.0  15

可以看到,数据集中有两个含有缺失值的列A和B。

填充所有缺失值

Pandas提供了fillna()函数来填充缺失值,其默认值为填充所有缺失值。下面的代码展示了如何使用fillna()函数来填充所有缺失值:

df.fillna(value=0, inplace=True)
print(df.head(10))

输出结果为:

     A     B   C
0  1.0   6.0  11
1  2.0   0.0  12
2  0.0   8.0  13
3  4.0   0.0  14
4  5.0  10.0  15

可以看到,所有的缺失值都被填充成了0。

填充指定列的缺失值

有时候,我们只需要填充某几列的缺失值,而不是填充所有列的缺失值。这时,我们可以在fillna()函数中指定需要填充的列。下面的代码展示了如何填充A列和B列的缺失值:

df.fillna(value={'A':0, 'B':1}, inplace=True)
print(df.head(10))

输出结果为:

     A     B   C
0  1.0   6.0  11
1  2.0   1.0  12
2  0.0   8.0  13
3  4.0   1.0  14
4  5.0  10.0  15

可以看到,只有A列和B列的缺失值被填充成了0和1,而C列没有被填充。

填充缺失值为同列均值

有时候,我们可以使用同一列的均值来填充该列的所有缺失值。下面的代码展示了如何通过计算各列均值来填充每列的缺失值:

df.fillna(value=df.mean(), inplace=True)
print(df.head(10))

输出结果为:

     A    B   C
0  1.0  6.0  11
1  2.0  8.0  12
2  3.0  8.0  13
3  4.0  8.0  14
4  5.0 10.0  15

可以看到,每列的缺失值都被填充成了该列的均值。