在Python Pandas中原地填入多列数据
在这篇文章中,我们要写Python脚本,使用pandas库在Python中填充多列的位置。数据框是一种二维数据结构,可以用CSV、Excel、.dB、SQL格式存储。我们将使用Python的Pandas库来填补数据框中的缺失值。
在多列中原地填充
首先在Python中用pandas创建一个数据集
# Importing Required Libraries
import pandas as pd
import numpy as np
# Creating a sample dataframe with NaN values
dataframe = pd.DataFrame({'Count': [1, np.nan,
np.nan, 4,
2, np.nan,
np.nan, 5, 6],
'Name': ['Geeks','for', 'Geeks','a','portal','for',
'computer', 'Science','Geeks'],
'Category':list('ppqqrrsss')})
# Printing The dataframe
display(dataframe)
输出:
在原地填入多列
例子1:用固定值来填补缺失的列值
我们可以使用fillna()函数对一个数据框架中由数值字典定义的每一列进行缺失值的估算。这种方法的局限性在于,我们只能使用常量值来进行填补。
# Importing Required Libraries
import pandas as pd
import numpy as np
# Creating a sample dataframe with NaN values
dataframe = pd.DataFrame({'Count': [1, np.nan, np.nan, 4, 2,
np.nan,np.nan, 5, 6],
'Name': ['Geeks','for', 'Geeks','a','portal','for',
'computer', 'Science','Geeks'],
'Category':list('ppqqrrsss')})
# Creating a constant value for column Count
constant_values = {'Count': 10}
dataframe = dataframe.fillna(value = constant_values)
# Printing the dataframe
display(dataframe)
输出:
在原地填入多列
例子2:用mean()填补缺失的列值
在这个方法中,数值是由一个叫做mean()的方法定义的,这个方法找出了给定列的现有数值的平均值,然后在每个缺失的(NaN)数值中归入平均值。
# Importing Required Libraries
import pandas as pd
import numpy as np
# Creating a sample dataframe with NaN values
dataframe = pd.DataFrame({'Count': [1, np.nan, np.nan, 4, 2,
np.nan,np.nan, 5, 6],
'Name': ['Geeks','for', 'Geeks','a','portal','for',
'computer', 'Science','Geeks'],
'Category':list('ppqqrrsss')})
# Filling Count column with mean of Count column
dataframe.fillna(dataframe['Count'].mean(), inplace = True)
# Printing the Dataframe
display(dataframe)
输出:
在原地填入多列
实例3:用mode()填补缺失的列值
模式是指在一组数据值中最常出现的数值。如果X是一个离散的随机变量,模式是概率质量函数达到最大值的值x。换句话说,它是最有可能被取样的值。
# Importing Required Libraries
import pandas as pd
import numpy as np
# Creating a sample dataframe with NaN values
dataframe = pd.DataFrame({'Count': [1, np.nan, np.nan,
1, 2, np.nan,np.nan,
5, 1],
'Name': ['Geeks','for', 'Geeks','a','portal','for',
'computer', 'Science','Geeks'],
'Category':list('ppqqrrsss')})
# Using Mode() function to impute the values using fillna
dataframe.fillna(dataframe['Count'].mode()[0], inplace = True)
# Printing the Dataframe
display(dataframe)
输出:
在原地填入多列
例子4:用多个值来填补缺失的列值
在这里,我们要用定义的值来填补缺失列中的多个值。
# Importing Required Libraries
import pandas as pd
import numpy as np
# Creating a sample dataframe with NaN values
dataframe = pd.DataFrame({'Count': [1, np.nan,
np.nan, 4,
2, np.nan,
np.nan, 5, 6],
'Name': ['Geeks','for', np.nan,'a','portal','for',
'computer', np.nan,'Geeks'],
'Category':list('ppqqrrsss')})
dataframe.fillna({'Count':'Unknown', 'Name': 'GFG'}, inplace=True)
#view DataFrame
display(dataframe)
输出:
在原地填入多列