ホームページ > バックエンド開発 > Python チュートリアル > Pandas データ フィルタリングの高度なテクニックと実用的なアプリケーション

Pandas データ フィルタリングの高度なテクニックと実用的なアプリケーション

PHPz
リリース: 2024-01-24 08:28:06
オリジナル
1105 人が閲覧しました

Pandas データ フィルタリングの高度なテクニックと実用的なアプリケーション

Pandas は強力なデータ処理および分析ツールであり、データを簡単にフィルタリングおよび処理するための多くの柔軟な機能と方法を提供します。この記事では、Pandas データ フィルタリングの高度なテクニックをいくつか紹介し、実際のケースを通じて具体的なコード例を示します。

1. 基本的なデータ フィルタリング

Pandas は、ブール インデックス、loc または iloc メソッドなどの使用など、データの基本的なフィルタリングを実行するためのさまざまなメソッドを提供します。ここでは、一般的な基本的なデータ フィルタリングのケースをいくつか示します。

  1. ブール インデックス フィルタリング

ブール インデックスは、特定の条件に基づいてデータをフィルタリングするために使用できます。たとえば、学生の情報を含むデータ フレームがあり、スコアが 60 点を超える学生をフィルタリングして除外したいとします。これは、次のコードを使用して実現できます。

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50]
}

df = pd.DataFrame(data)
df_filtered = df[df['成绩'] > 60]

print(df_filtered)
ログイン後にコピー
  1. loc メソッドのフィルタリング

loc メソッドは、行ラベルと列ラベルに基づいてデータをフィルタリングできます。たとえば、学生情報を含むデータ フレームがあり、Zhang San と Li Si という名前の学生の学年と年齢をフィルタリングして除外したいとします。これを実現するには、次のコードを使用できます:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
    '年龄': [18, 19, 20, 21]
}

df = pd.DataFrame(data)
df_filtered = df.loc[df['姓名'].isin(['张三', '李四']), ['成绩', '年龄']]

print(df_filtered)
ログイン後にコピー

2. 高度なデータ フィルタリング

基本的なデータ フィルタリング方法に加えて、Pandas は、クエリの使用など、多くの高度なデータ フィルタリング手法も提供します。 MultiIndex は、マルチレベルのフィルタリングなどを実行します。以下にいくつかの事例を示します。

  1. クエリ メソッドのフィルタリング

クエリ メソッドは、SQL に似た構文を使用してデータをフィルタリングできます。たとえば、学生の情報を含むデータ フレームがあり、スコアが 60 を超え、18 歳から 20 歳までの学生をフィルタリングして除外したいとします。これを実現するには、次のコードを使用します。

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
    '年龄': [18, 19, 20, 21]
}

df = pd.DataFrame(data)
df_filtered = df.query('成绩 > 60 and 18 <= 年龄 <= 20')

print(df_filtered)
ログイン後にコピー
  1. MultiIndex を使用してフィルタリングする

データ フレームに複数のレベルのインデックスがある場合は、MultiIndex オブジェクトを使用して、マルチレベルフィルタリング。たとえば、学生の情報を含むデータ フレームがあります。インデックスにはクラスと学生番号の 2 つのレベルが含まれています。クラス 1 の学生番号 001 と 002 の学生をフィルタリングして除外したいとします。これは、次のコードを使用して実現できます。

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '成绩': [80, 70, 90, 50],
}

index = pd.MultiIndex.from_tuples([('1班', '001'), ('1班', '002'), ('2班', '001'), ('2班', '002')])
df = pd.DataFrame(data, index=index)
df_filtered = df.loc[('1班', ['001', '002']), :]

print(df_filtered)
ログイン後にコピー

3. ケース分析

次に、Pandas データ フィルタリングの高度なテクニックをさらに説明するために、実際のデータ セットを例として取り上げます。自動車のブランド、モデル、販売台数、販売量などの情報を含む自動車販売データ セットがあるとします。販売台数が 1,000 台を超え、販売台数が 100 万台を超えるモデルをフィルタリングしたいと考えています。以下はコード例です。

import pandas as pd

data = {
    '品牌': ['宝马', '奥迪', '奔驰', '大众'],
    '型号': ['X3', 'A6', 'E级', '朗逸'],
    '销售量': [1200, 800, 1500, 900],
    '销售额': [1200, 900, 1800, 800]
}

df = pd.DataFrame(data)
df_filtered = df.query('销售量 > 1000 and 销售额 > 1000000')

print(df_filtered)
ログイン後にコピー

上記のコードにより、販売台数が 1,000 台を超え、売上高が 100 万元を超えるモデルを選別することに成功しました。

要約すると、Pandas は、基本的なブール インデックス、loc および iloc メソッドから高度なクエリ メソッドや MultiIndex フィルタリングまで、さまざまなシナリオでのデータ フィルタリングのニーズを満たすことができる豊富なデータ フィルタリング関数とメソッドを提供します。上記のケースは、いくつかの一般的なデータ フィルタリング手法とアプリケーションを示しており、実際のアプリケーションで読者に役立つことを願っています。

以上がPandas データ フィルタリングの高度なテクニックと実用的なアプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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