Pythonのデータ分析ライブラリであるpandasは、データフレームとシリーズという2つの基本的なデータ構造を提供しています。データフレームは2次元の表形式であり、表形式のデータを扱う際に最もよく使われるデータ構造です。この記事では、pandasでデータフレームを操作する際に欠かせない属性の抽出方法について、実践例を交えて紹介します。
はじめに
pandasでデータフレームを操作する際に欠かせないのが、データフレームの各属性の抽出方法です。データフレームには、列属性や行属性があります。これらの属性を適切に抽出することで、データフレームを効率的に操作することができます。
列属性の抽出方法と実践例
データフレームの列属性を抽出する方法は、df[列名]の形式で行います。以下は、列名が「A」と「B」の2つの列属性を抽出する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ "A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9] }) # 列属性の抽出 print(df["A"]) print(df[["A", "B"]])
上記のコードを実行すると、以下のような出力結果が得られます。
0 1 1 2 2 3 Name: A, dtype: int64 A B 0 1 4 1 2 5 2 3 6
1つの列属性を抽出する場合は、df[列名]の形式で、複数の列属性を抽出する場合はdf[[列名1, 列名2, …]]の形式で指定します。また、iloc属性やloc属性を使うことで、列属性を位置で指定することもできます。以下は、列属性を位置で指定して抽出する例です。
import pandas as pd print(df.loc[:,'A']) print(df.iloc[:,0])
データフレームの行属性を抽出する方法は、df.loc[インデックス名]やdf.iloc[インデックス番号]の形式で行います。以下は、インデックス名が「0」と「2」の2つの行属性を抽出する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ "A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9] }, index=["a", "b", "c"]) # 行属性の抽出 print(df.loc["a"]) print(df.iloc[[0, 2]])
上記のコードを実行すると、以下のような出力結果が得られます。
A 1 B 4 C 7 Name: a, dtype: int64 A B C a 1 4 7 c 3 6 9
1つの行属性を抽出する場合は、df.loc[インデックス名]またはdf.iloc[インデックス番号]の形式で、複数の行属性を抽出する場合はdf.loc[[インデックス名1, インデックス名2, …]]またはdf.iloc[[インデックス番号1, インデックス番号2, …]]の形式で指定します。また、loc属性やiloc属性を使うことで、行属性と列属性を同時に指定して抽出することもできます。
条件に基づく属性抽出方法と実践例
データフレームから、ある条件を満たす行属性や列属性を抽出する方法もあります。以下は、列属性が3より大きい行だけを抽出する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ "A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9] }) # 条件に基づく列属性の抽出 print(df.loc[:, df.max() > 3])
上記のコードを実行すると、以下のような出力結果が得られます。
B C 0 4 7 1 5 8 2 6 9
条件に基づく行属性の抽出も同様に行います。以下は、列属性が3より
以下は、列属性が3より大きい行だけを抽出する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ "A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9] }) # 条件に基づく行属性の抽出 print(df[df["A"] > 1])
上記のコードを実行すると、以下のような出力結果が得られます。
A B C 1 2 5 8 2 3 6 9
条件に基づく属性抽出では、loc属性やiloc属性を使うことで、行属性と列属性を同時に指定して抽出することもできます。
複数の属性を同時に抽出する方法と実践例
データフレームから複数の属性を同時に抽出する方法は、df.loc[インデックス名, [列名1, 列名2, …]]やdf.iloc[インデックス番号, [列番号1, 列番号2, …]]の形式で行います。以下は、インデックス名が「1」である行と、列名が「B」と「C」である列属性を同時に抽出する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ "A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9] }, index=["a", "b", "c"]) # 複数の属性を同時に抽出 print(df.loc["b", ["B", "C"]]) print(df.iloc[1, [1, 2]])
上記のコードを実行すると、以下のような出力結果が得られます。
B 5 C 8 Name: b, dtype: int64 B 5 C 8 Name: b, dtype: int64
まとめ
pandasでデータフレームを操作する際に欠かせない属性の抽出方法について、列属性や行属性、条件に基づく属性抽出、複数の属性を同時に抽出する方法を紹介しました。これらの方法を適切に使いこなすことで、データフレームを効率的に操作することができます。
以上で、Pythonのpandasを使ったデータフレームの属性の抽出方法について、実践例を交えて紹介しました。これらの方法をマスターすることで、pandasをより効率的に扱うことができるようになるでしょう。