Les techniques de nettoyage des données Pandas révélées !
Introduction :
Dans l'analyse des données et l'apprentissage automatique, le nettoyage des données est une étape très importante, qui implique le prétraitement, la transformation et le filtrage de l'ensemble de données afin d'organiser les données dans le format et la structure dont nous avons besoin. Pandas est l'une des bibliothèques d'analyse de données les plus populaires et les plus puissantes de Python. Elle fournit des outils et des méthodes de fonctionnement riches et flexibles. Cet article révélera quelques techniques de base de nettoyage des données Pandas et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer ces techniques.
1. Importez la bibliothèque pandas et l'ensemble de données
Avant de commencer, vous devez d'abord installer la bibliothèque pandas. Une fois l'installation terminée, vous pouvez utiliser le code suivant pour importer la bibliothèque pandas et charger l'ensemble de données qui doit être nettoyé.
import pandas as pd # 导入数据集 data = pd.read_csv('data.csv')
2. Afficher l'ensemble de données
Avant de nettoyer les données, vous devez d'abord comprendre la structure et le contenu de l'ensemble de données. pandas fournit plusieurs fonctions couramment utilisées pour afficher des ensembles de données, notamment head()
, tail()
, shape
et info( )< /code>etc. <code>head()
、tail()
、shape
和info()
等。
代码示例:
# 查看前五行数据 print(data.head()) # 查看后五行数据 print(data.tail()) # 查看数据集的维度 print(data.shape) # 查看数据集的基本信息 print(data.info())
三、处理缺失值
缺失值是数据集中经常遇到的问题之一,而且在真实的数据集中很常见。pandas提供了处理缺失值的多种方法。常见的处理缺失值的方法有删除、填充和插值。
删除缺失值是最简单的处理方法之一,但需要慎重使用。在pandas中,可以使用dropna()
函数来删除包含缺失值的行或列。
代码示例:
# 删除包含缺失值的行 data.dropna(axis=0, inplace=True) # 删除包含缺失值的列 data.dropna(axis=1, inplace=True)
填充缺失值是另一种常用的处理方法,它可以用一个常数或其他数据集中的值来填充缺失值。在pandas中,可以使用fillna()
函数来填充缺失值。
代码示例:
# 使用0填充缺失值 data.fillna(0, inplace=True) # 使用平均值填充缺失值 data.fillna(data.mean(), inplace=True)
插值缺失值是一种更高级的处理方法,它可以根据已知数据的特征来推测缺失值。在pandas中,可以使用interpolate()
函数来进行插值处理。
代码示例:
# 线性插值处理缺失值 data.interpolate(method='linear', inplace=True) # 拟合插值处理缺失值 data.interpolate(method='quadratic', inplace=True)
四、处理重复值
重复值是另一个常见的数据集问题,它可能会导致数据分析和建模的偏差。pandas提供了几个函数来处理重复值,包括duplicated()
和drop_duplicates()
等。
可以使用duplicated()
函数来查找数据集中的重复值。该函数返回一个布尔类型的Series对象,其中包含了每个元素是否重复的信息。
代码示例:
# 查找重复值 duplicated_data = data.duplicated() # 打印重复值 print(duplicated_data)
可以使用drop_duplicates()
函数来删除数据集中的重复值。该函数返回一个经过去重后的新数据集。
代码示例:
# 删除重复值 data.drop_duplicates(inplace=True)
五、处理异常值
异常值是数据集中的异常观测值,它可能会对数据分布和模型拟合产生不良影响。pandas提供了一些函数和方法来识别和处理异常值,包括箱线图、z-score和IQR等。
箱线图是一种常用的异常值检测方法,它可以用来判断数据集中是否存在异常值。可以使用boxplot()
函数来绘制箱线图,并通过观察箱线图中的离群点来识别异常值。
代码示例:
# 绘制箱线图 data.boxplot(column='value', figsize=(10, 6)) # 显示图像 plt.show()
z-score是一种统计概念,它可以用来标准化数据并判断观测值是否偏离了平均值。在pandas中,可以使用zscore()
函数来计算z-score,并通过设定阈值来判断是否存在异常值。
代码示例:
# 计算z-score z_scores = (data - data.mean()) / data.std() # 判断是否存在异常值 outliers = z_scores[(z_scores > 3) | (z_scores < -3)] # 显示异常值 print(outliers)
IQR(Inter-Quartile Range)是一种计算概念,它可以通过计算数据集的四分位差来确定异常值的范围。在pandas中,可以使用quantile()
函数来计算四分位数,然后使用IQR公式来判断是否存在异常值。
代码示例:
# 计算四分位差 Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 # 判断是否存在异常值 outliers = data[((data < (Q1 - 1.5 * IQR)) | (data > (Q3 + 1.5 * IQR))).any(axis=1)] # 显示异常值 print(outliers)
六、转换数据类型
数据类型是数据集中一个重要的属性,它涉及到数据的存储方式、计算方式和可视化方式等。在pandas中,可以使用astype()
函数来转换数据类型。
代码示例:
# 将字符串类型转换为整数类型 data['column'] = data['column'].astype(int) # 将浮点型转换为整数类型 data['column'] = data['column'].astype(int) # 将字符串类型转换为日期类型 data['column'] = pd.to_datetime(data['column'])
七、其他常用操作
除了上述的数据清洗技巧外,pandas还提供了其他一些常用的数据清洗操作,包括重命名列、拆分列和合并列等。
可以使用rename()
函数来重命名数据集中的列。
代码示例:
# 重命名列 data.rename(columns={'old_name': 'new_name'}, inplace=True)
可以使用str.split()
函数来将含有多个值的列拆分成多个列。
代码示例:
# 拆分列 new_columns = data['column'].str.split(',', expand=True) # 重新命名新列 new_columns.columns = ['column1', 'column2', 'column3'] # 合并新列到数据集 data = pd.concat([data, new_columns], axis=1)
可以使用pd.merge()
# 新数据集1 data1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]}) # 新数据集2 data2 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value2': [4, 5, 6]}) # 合并数据集 merged_data = pd.merge(data1, data2, on='key') # 打印合并后的数据集 print(merged_data)
dropna()
pour supprimer les lignes ou les colonnes contenant des valeurs manquantes. 🎜🎜Exemple de code : 🎜rrreeefillna()
pour remplir les valeurs manquantes. 🎜🎜Exemple de code : 🎜rrreeeinterpolate()
pour effectuer un traitement d'interpolation. 🎜🎜Exemple de code : 🎜rrreee🎜4. Gestion des valeurs en double🎜🎜Les valeurs en double sont un autre problème courant concernant les ensembles de données, qui peut entraîner des biais dans l'analyse et la modélisation des données. pandas fournit plusieurs fonctions pour gérer les valeurs en double, notamment duplicated()
et drop_duplicates()
, etc. 🎜duplicate()
pour rechercher les valeurs en double dans l'ensemble de données. Cette fonction renvoie un objet Boolean Series qui contient des informations indiquant si chaque élément est répété. 🎜🎜Exemple de code : 🎜rrreeedrop_duplicates()
pour supprimer les valeurs en double dans l'ensemble de données. Cette fonction renvoie un nouvel ensemble de données dédupliqués. 🎜🎜Exemple de code : 🎜rrreee🎜 5. Gestion des valeurs aberrantes🎜🎜Les valeurs aberrantes sont des observations anormales dans l'ensemble de données, qui peuvent avoir un impact négatif sur la distribution des données et l'ajustement du modèle. Pandas fournit certaines fonctions et méthodes pour identifier et traiter les valeurs aberrantes, notamment les boxplots, le z-score, l'IQR, etc. 🎜boxplot()
pour dessiner des boîtes à moustaches et identifier les valeurs aberrantes en observant les valeurs aberrantes dans la boîte à moustaches. 🎜🎜Exemple de code : 🎜rrreeezscore()
pour calculer le z-score et déterminer s'il existe des valeurs aberrantes en définissant un seuil. 🎜🎜Exemple de code : 🎜rrreeequantile()
pour calculer les quartiles, puis utiliser la formule IQR pour déterminer s'il existe des valeurs aberrantes. 🎜🎜Exemple de code : 🎜rrreee🎜 6. Convertir le type de données🎜🎜Le type de données est un attribut important dans l'ensemble de données, qui implique la méthode de stockage, la méthode de calcul et la méthode de visualisation des données. Dans les pandas, vous pouvez utiliser la fonction astype()
pour convertir les types de données. 🎜🎜Exemple de code : 🎜rrreee🎜7. Autres opérations courantes🎜🎜En plus des techniques de nettoyage de données ci-dessus, pandas propose également d'autres opérations de nettoyage de données couramment utilisées, notamment renommer les colonnes, diviser les colonnes et fusionner les colonnes. 🎜rename()
pour renommer les colonnes de l'ensemble de données. 🎜🎜Exemple de code : 🎜rrreeestr.split()
pour diviser les colonnes contenant multiple La colonne de valeurs est divisée en plusieurs colonnes. 🎜🎜Exemple de code : 🎜rrreeepd.merge()
pour fusionner plusieurs colonnes dans les colonnes des ensembles de données. 🎜🎜Exemple de code : 🎜rrreee🎜Résumé : 🎜Cet article présente quelques techniques de nettoyage de données pandas couramment utilisées et fournit des exemples de code spécifiques. Ces techniques incluent la gestion des valeurs manquantes, la gestion des valeurs en double, la gestion des valeurs aberrantes, la conversion des types de données et d'autres opérations courantes. En apprenant et en appliquant ces techniques, les lecteurs peuvent mieux traiter et préparer les données, établissant ainsi une base solide pour l'analyse et la modélisation ultérieures des données. Bien entendu, en plus des techniques présentées dans cet article, les pandas ont de nombreuses autres fonctions et méthodes, et les lecteurs peuvent les apprendre et les appliquer en fonction de leurs propres besoins et situations réelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!