Heim > Artikel > Backend-Entwicklung > Verraten Sie wichtige Tipps zur Pandas-Datenbereinigung!
Pandas-Datenbereinigungstechniken enthüllt!
Einführung:
Bei der Datenanalyse und beim maschinellen Lernen ist die Datenbereinigung ein sehr wichtiger Schritt, der die Vorverarbeitung, Transformation und Filterung des Datensatzes umfasst, um die Daten in dem von uns benötigten Format und der benötigten Struktur zu organisieren. Pandas ist eine der beliebtesten und leistungsstärksten Datenanalysebibliotheken in Python. Sie bietet umfangreiche und flexible Datenbereinigungstools und Betriebsmethoden. In diesem Artikel werden einige grundlegende Techniken zur Pandas-Datenbereinigung vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Techniken besser zu verstehen und anzuwenden.
1. Importieren Sie die Pandas-Bibliothek und den Datensatz
Bevor Sie beginnen, müssen Sie zunächst die Pandas-Bibliothek installieren. Nach Abschluss der Installation können Sie mit dem folgenden Code die Pandas-Bibliothek importieren und den zu bereinigenden Datensatz laden.
import pandas as pd # 导入数据集 data = pd.read_csv('data.csv')
2. Sehen Sie sich den Datensatz an
Bevor Sie die Daten bereinigen, müssen Sie zunächst die Struktur und den Inhalt des Datensatzes verstehen. Pandas bietet mehrere häufig verwendete Funktionen zum Anzeigen von Datensätzen, darunter head()
, tail()
, shape
und info( )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)3. Umgang mit fehlenden WertenFehlende Werte sind eines der Probleme, die in Datensätzen häufig auftreten, und sie kommen in realen Datensätzen sehr häufig vor. Pandas bietet verschiedene Möglichkeiten, mit fehlenden Werten umzugehen. Zu den gängigen Methoden zum Umgang mit fehlenden Werten gehören Löschen, Füllen und Interpolation. 🎜
dropna()
verwenden, um Zeilen oder Spalten mit fehlenden Werten zu löschen. 🎜🎜Codebeispiel: 🎜rrreeefillna()
verwenden, um fehlende Werte auszufüllen. 🎜🎜Codebeispiel: 🎜rrreeeinterpolate()
verwenden, um eine Interpolationsverarbeitung durchzuführen. 🎜🎜Codebeispiel: 🎜rrreee🎜4. Umgang mit doppelten Werten🎜🎜Doppelte Werte sind ein weiteres häufiges Problem bei Datensätzen, das zu Verzerrungen bei der Datenanalyse und -modellierung führen kann. Pandas bietet mehrere Funktionen zum Umgang mit doppelten Werten, einschließlich duplicated()
und drop_duplicates()
usw. 🎜duplicated()
verwenden, um doppelte Werte im Datensatz zu finden. Diese Funktion gibt ein Boolean Series-Objekt zurück, das Informationen darüber enthält, ob jedes Element wiederholt wird. 🎜🎜Codebeispiel: 🎜rrreeedrop_duplicates()
verwenden, um doppelte Werte zu löschen im Datensatz. Diese Funktion gibt einen neuen deduplizierten Datensatz zurück. 🎜🎜Codebeispiel: 🎜rrreee🎜 5. Umgang mit Ausreißern🎜🎜Ausreißer sind abnormale Beobachtungen im Datensatz, die sich negativ auf die Datenverteilung und Modellanpassung auswirken können. Pandas bietet einige Funktionen und Methoden zur Identifizierung und Behandlung von Ausreißern, darunter Boxplots, Z-Score, IQR usw. 🎜boxplot()
können Sie Boxplots zeichnen und Ausreißer identifizieren, indem Sie Ausreißer im Boxplot beobachten. 🎜🎜Codebeispiel: 🎜rrreeezscore()
verwenden, um den Z-Score zu berechnen und durch Festlegen eines Schwellenwerts festzustellen, ob Ausreißer vorhanden sind. 🎜🎜Codebeispiel: 🎜rrreeequantile()
verwenden, um Quartile zu berechnen, und dann mithilfe der IQR-Formel bestimmen, ob Ausreißer vorhanden sind. 🎜🎜Codebeispiel: 🎜rrreee🎜 6. Datentyp konvertieren🎜🎜Der Datentyp ist ein wichtiges Attribut im Datensatz, das die Speichermethode, Berechnungsmethode und Visualisierungsmethode der Daten umfasst. In Pandas können Sie die Funktion astype()
verwenden, um Datentypen zu konvertieren. 🎜🎜Codebeispiel: 🎜rrreee🎜7. Andere gängige Vorgänge🎜🎜Zusätzlich zu den oben genannten Datenbereinigungstechniken bietet Pandas auch einige andere häufig verwendete Datenbereinigungsvorgänge, darunter das Umbenennen von Spalten, das Teilen von Spalten und das Zusammenführen von Spalten. 🎜rename()
können Sie Spalten im Datensatz umbenennen. 🎜🎜Codebeispiel: 🎜rrreeestr.split()
verwenden, um enthaltene Spalten zu teilen multiple Die Wertespalte ist in mehrere Spalten aufgeteilt. 🎜🎜Codebeispiel: 🎜rrreeepd.merge()
verwenden, um mehrere Spalten zusammenzuführen in den Datensatzspalten. 🎜🎜Codebeispiel: 🎜rrreee🎜Zusammenfassung: 🎜In diesem Artikel werden einige häufig verwendete Pandas-Datenbereinigungstechniken vorgestellt und spezifische Codebeispiele bereitgestellt. Zu diesen Techniken gehören der Umgang mit fehlenden Werten, der Umgang mit doppelten Werten, der Umgang mit Ausreißern, das Konvertieren von Datentypen und andere gängige Vorgänge. Durch das Erlernen und Anwenden dieser Techniken können Leser Daten besser verarbeiten und aufbereiten und so eine solide Grundlage für die anschließende Datenanalyse und -modellierung legen. Zusätzlich zu den in diesem Artikel vorgestellten Techniken verfügt Pandas natürlich über viele andere Funktionen und Methoden, und der Leser kann sie entsprechend seinen eigenen Bedürfnissen und tatsächlichen Situationen weiter erlernen und anwenden.
Das obige ist der detaillierte Inhalt vonVerraten Sie wichtige Tipps zur Pandas-Datenbereinigung!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!