ホームページ > バックエンド開発 > Python チュートリアル > pandas データのクリーニングに関する重要なヒントを明らかにします。

pandas データのクリーニングに関する重要なヒントを明らかにします。

PHPz
リリース: 2024-01-24 09:43:18
オリジナル
1186 人が閲覧しました

pandas データのクリーニングに関する重要なヒントを明らかにします。

パンダのデータクリーニングテクニックが明らかに!

はじめに:

データ分析と機械学習において、データ クリーニングは非常に重要なステップです。これには、データをフォーマットと構造に整理するために、データ セットの前処理、変換、フィルタリングが含まれます。私たちには必要です。 Pandas は、Python で最も人気のある強力なデータ分析ライブラリの 1 つであり、豊富で柔軟なデータ クリーニング ツールと操作方法を提供します。この記事では、pandas データ クリーニングの基本的なテクニックをいくつか明らかにし、読者がこれらのテクニックをよりよく理解して適用できるように、具体的なコード例を示します。

1. pandas ライブラリとデータ セットをインポートする

開始する前に、まず pandas ライブラリをインストールする必要があります。インストールが完了したら、次のコードを使用して pandas ライブラリをインポートし、クリーンアップする必要があるデータ セットをロードできます。

import pandas as pd

# 导入数据集
data = pd.read_csv('data.csv')
ログイン後にコピー

2. データ セットの表示

データ クリーニングを実行する前に、まずデータ セットの構造と内容を理解する必要があります。 pandas は、head()tail()shapeinfo()wait など、データセットを表示するためによく使用される関数をいくつか提供します。 。

コード例:

# 查看前五行数据
print(data.head())

# 查看后五行数据
print(data.tail())

# 查看数据集的维度
print(data.shape)

# 查看数据集的基本信息
print(data.info())
ログイン後にコピー

3. 欠損値の処理

欠損値はデータセットでよく遭遇する問題の 1 つであり、実際のデータでは非常に一般的です。セット。 Pandas には、欠損値を処理するいくつかの方法が用意されています。欠損値を処理する一般的な方法には、削除、埋め込み、補間などがあります。

  1. 欠損値の削除

欠損値の削除は最も単純な処理方法の 1 つですが、使用には注意が必要です。 pandas では、dropna() 関数を使用して、欠損値を含む行または列を削除できます。

コード例:

# 删除包含缺失值的行
data.dropna(axis=0, inplace=True)

# 删除包含缺失值的列
data.dropna(axis=1, inplace=True)
ログイン後にコピー
  1. 欠損値の補充

欠損値の補充は、定数または他の値を使用できるもう 1 つの一般的な処理方法です。データセット内で欠損値を埋めます。 pandas では、fillna() 関数を使用して欠損値を埋めることができます。

コード例:

# 使用0填充缺失值
data.fillna(0, inplace=True)

# 使用平均值填充缺失值
data.fillna(data.mean(), inplace=True)
ログイン後にコピー
  1. 欠損値の補間

欠損値の補間は、既知のデータに基づく、より高度な処理方法です。欠損値を代入する機能。 pandas では、interpolate() 関数を使用して補間処理を実行できます。

コード例:

# 线性插值处理缺失值
data.interpolate(method='linear', inplace=True)

# 拟合插值处理缺失值
data.interpolate(method='quadratic', inplace=True)
ログイン後にコピー

4. 重複値の処理

重複値は、データ セットのもう 1 つの一般的な問題であり、データ分析とモデリングの逸脱につながる可能性があります。 pandas は、duplicated()drop_duplicates() など、重複した値を処理するための関数をいくつか提供します。

  1. 重複値の検索

duplicated() 関数を使用して、データ セット内の重複値を検索できます。この関数は、各要素が繰り返されるかどうかに関する情報を含む Boolean Series オブジェクトを返します。

コード例:

# 查找重复值
duplicated_data = data.duplicated()

# 打印重复值
print(duplicated_data)
ログイン後にコピー
  1. 重複値の削除

drop_duplicates() 関数を使用して重複値を削除できます。データセット内。この関数は、重複排除された新しいデータ セットを返します。

コード例:

# 删除重复值
data.drop_duplicates(inplace=True)
ログイン後にコピー

5. 外れ値の処理

外れ値はデータセット内の異常な観測値であり、データの分布やモデルのフィッティングに悪影響を与える可能性があります。 。 Pandas は、箱ひげ図、Z スコア、IQR など、外れ値を特定して処理するためのいくつかの関数とメソッドを提供します。

  1. 箱ひげ図

箱ひげ図は、一般的に使用される外れ値検出方法であり、データ セットに外れ値があるかどうかを判断するために使用できます。 boxplot() 関数を使用すると、箱ひげ図を描画し、箱ひげ図内の外れ値を観察することで外れ値を特定できます。

コード例:

# 绘制箱线图
data.boxplot(column='value', figsize=(10, 6))

# 显示图像
plt.show()
ログイン後にコピー
  1. z-score

z-score は、データを標準化し、観測値の逸脱を判断するために使用できる統計的な概念です。平均から。 pandas では、zscore() 関数を使用して Z スコアを計算し、しきい値を設定して外れ値があるかどうかを判断できます。

コード例:

# 计算z-score
z_scores = (data - data.mean()) / data.std()

# 判断是否存在异常值
outliers = z_scores[(z_scores > 3) | (z_scores < -3)]

# 显示异常值
print(outliers)
ログイン後にコピー
  1. IQR

IQR (四分位範囲) は、4 次元の計算によって計算できる計算概念です。データセットの範囲 外れ値の範囲を決定するための分位差。 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)
ログイン後にコピー

6. データ型の変換

データ型はデータセットの重要な属性であり、保存方法、計算方法、視覚化方法に関係します。データです。お待​​ちください。 pandas では、astype() 関数を使用してデータ型を変換できます。

コード例:

# 将字符串类型转换为整数类型
data['column'] = data['column'].astype(int)

# 将浮点型转换为整数类型
data['column'] = data['column'].astype(int)

# 将字符串类型转换为日期类型
data['column'] = pd.to_datetime(data['column'])
ログイン後にコピー

7. その他の一般的な操作

上記のデータ クリーニング手法に加えて、pandas は列名の変更など、その他の一般的に使用されるデータ クリーニング操作も提供します。 、列の分割、列の結合など。

  1. 列名の変更

rename() 関数を使用して、データ セット内の列の名前を変更できます。

コード例:

# 重命名列
data.rename(columns={'old_name': 'new_name'}, inplace=True)
ログイン後にコピー
  1. 列の分割

関数 str.split() を使用して、次の内容を含む列を分割できます。 multiple 値の列が複数の列に分割されます。

コード例:

# 拆分列
new_columns = data['column'].str.split(',', expand=True)

# 重新命名新列
new_columns.columns = ['column1', 'column2', 'column3']

# 合并新列到数据集
data = pd.concat([data, new_columns], axis=1)
ログイン後にコピー
  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)
ログイン後にコピー

概要:

この記事では、一般的に使用されるパンダのデータ クリーニング手法をいくつか紹介し、具体的なコード例を示します。これらの手法には、欠損値の処理、重複値の処理、外れ値の処理、データ型の変換、その他の一般的な操作が含まれます。これらのテクニックを学習して適用することで、読者はデータをより適切に処理して準備できるようになり、その後のデータ分析とモデリングのための強固な基盤を築くことができます。もちろん、この記事で紹介したテクニック以外にも、pandas には他にも多くの機能やメソッドがあり、読者はさらに学習し、自分のニーズや実際の状況に応じて応用することができます。

以上がpandas データのクリーニングに関する重要なヒントを明らかにします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート