はじめに
この実験では、Pandas の DataFrame で filter() メソッドを使用する方法を学びます。filter() メソッドを使用すると、指定されたインデックスラベルに基づいて DataFrame の行または列をサブセット化することができます。このメソッドは、DataFrame の内容ではなく、インデックスのラベルに基づいて DataFrame をフィルタリングすることに注意してください。
VM のヒント
VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を開いて練習を行ってください。
場合によっては、Jupyter Notebook の読み込みが完了するまで数秒待つ必要があることがあります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題が発生した場合は、いつでも Labby に質問してください。セッション終了後にフィードバックを提供していただければ、迅速に問題を解決します。
DataFrame を作成する
まず、操作対象となるサンプルの DataFrame を作成しましょう。
#import pandas as pd
import pandas as pd
#creating DataFrame
df=pd.DataFrame({
"Name":["Navya","Vindya","Sinchana","Amrutha","Akshatha"],
"Age":[25,24,25,25,26],
"Education":["M.Tech","M.Tech","M.Tech","Ph.d","Ph.d"],
"YOP":[2019,2020,2018,None,None]},
index=["Group_1", "Group_1","Group_1","Group_2","Group_2"])
#printing DataFrame
print("-------DataFrame is----------")
print(df)
filter() メソッドを使用して列名でフィルタリングする
filter() メソッドの items パラメータを使用して、特定の列で DataFrame をフィルタリングすることができます。
#filter by column names
filtered_df = df.filter(items=["Name","Education"])
#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)
filter() メソッドを使って行名でフィルタリングする
filter() メソッドの like パラメータを使用して、特定の行で DataFrame をフィルタリングすることができます。
#filter by row names
filtered_df = df.filter(like='Group_2', axis=0)
#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)
regex パラメータを使用して列名でフィルタリングする
filter() メソッドの regex パラメータを使用して、正規表現に基づいて特定の列で DataFrame をフィルタリングすることができます。
#filter by column names with regex
filtered_df = df.filter(regex ='[g]')
#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)
まとめ
この実験では、Pandas の DataFrame で filter() メソッドを使用する方法を学びました。列名や行名で DataFrame をフィルタリングする方法、および正規表現に基づいてフィルタリングする方法を説明しました。このメソッドは、特定のインデックスラベルに基づいて DataFrame をサブセット化するのに便利です。