当处理数据时,通常需要对数据进行归一化和清洗。在pandas中,可以使用一些内置函数和方法来实现这些操作。
数据归一化
数据归一化是一种使数据在相似度比较时更具可比性的技术。pandas提供了一些内置函数来帮助完成数据归一化操作。
min-max归一化
min-max归一化是一种常见的数据归一化方法,将数据转换为0~1之间的值。pandas中提供了min()
和max()
函数来获取数据集中最小值和最大值。然后,可以使用如下公式将数据进行归一化:
$${X}' = \frac{X - X_{min}}{X_{max} - X_{min}}$$
其中,$X$为原始数据,$X_{min}$和$X_{max}$分别为最小值和最大值。得到的归一化数据为${X}'$。
下面是一个使用pandas实现min-max归一化的例程:
import pandas as pd
# 创建数据集DataFrame
data = {'score': [98, 78, 86, 92, 88]}
df = pd.DataFrame(data)
# 计算最小值和最大值
min_val = df['score'].min()
max_val = df['score'].max()
# 对数据进行归一化
df['score_normalized'] = (df['score'] - min_val) / (max_val - min_val)
print(df)
上面的代码会打印出归一化后的数据集,其中新增了一列名为score_normalized
的数据列,存储归一化后的数据。
z-score归一化
z-score归一化是一种将数据归一化到标准正态分布的方法。pandas中提供了mean()
和std()
函数来获取数据集的均值和标准差。然后,可以使用如下公式将数据进行归一化:
$${X}' = \frac{X - \mu}{\sigma}$$
其中,$\mu$和$\sigma$分别为数据集的均值和标准差。得到的归一化数据为${X}'$。
下面是一个使用pandas实现z-score归一化的例程:
import pandas as pd
# 创建数据集DataFrame
data = {'score': [98, 78, 86, 92, 88]}
df = pd.DataFrame(data)
# 计算均值和标准差
mean_val = df['score'].mean()
std_val = df['score'].std()
# 对数据进行归一化
df['score_normalized'] = (df['score'] - mean_val) / std_val
print(df)
上面的代码会打印出归一化后的数据集,其中新增了一列名为score_normalized
的数据列,存储归一化后的数据。
行删除
数据清洗时,有时需要删除无效、重复、缺失或异常的行。pandas中提供了drop()
函数来删除行。
下面是一个使用pandas删除无效行的例程:
import pandas as pd
# 创建数据集DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', None],
'score': [98, 78, 86, None]}
df = pd.DataFrame(data)
# 删除无效行
df = df.dropna()
print(df)
上面的代码会打印出删除无效行后的数据集,其中的无效行包括有缺失值的行,使用dropna()
函数可以删除这些行。
下面是一个使用pandas删除重复行的例程:
import pandas as pd
# 创建数据集DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'Charlie'],
'score': [98, 78, 86, 92]}
df = pd.DataFrame(data)
# 删除重复行
df = df.drop_duplicates()
print(df)
上面的代码会打印出删除重复行后的数据集,其中的重复行包括名字为Charlie的行,使用drop_duplicates()
函数可以删除这些行。
通过以上的min-max归一化、z-score归一化和行删除的示例,可以看出pandas提供了简便易用的函数来完成数据归一化和清洗操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas 数据归一化以及行删除例程的方法 - Python技术站