Pandas DataFrame へのラベルベースのインデックス作成
<h2>はじめに <p>Pandas ライブラリは、データ分析と操作の分野を支配しています。 2 次元のラベル付きデータ構造である Pandas DataFrame は、その多用途性と使いやすさにより、世界中のデータ サイエンティストやアナリストにとって頼りになるツールとなっています。ラベルベースのインデックス作成は、読みやすく自然な方法でデータにアクセスできるようにする、DataFrame の強力な機能です。この記事では、Pandas DataFrame のラベルベースのインデックス作成について徹底的に説明し、役立つ洞察を得るために例で補足します。
Pandas DataFrame のラベルベースのインデックス作成について
Pandas では、「ラベルベースのインデックス作成」という用語は、明示的なラベルを使用して DataFrame 内のデータを取得することを指します。これらのラベル (行名や列名など) により、データ処理プロセスの読みやすさと直観性が向上します。 at と loc は、ラベルベースのインデックス作成の 2 つの主要な手法です。
DataFrame では、loc 属性がラベルベースのインデックス作成の主なアクセス方法です。ラベルを受け取り、それらのラベルに基づいてデータを DataFrame または Series で返します。
loc 手法と同様に、at メソッドは、ラベルを使用して DataFrame 内のデータを取得するために使用されます。一方、at はより高速なアクセスを提供し、単一のスカラー値を取得するのに適しています。 at には速度の点で利点がありますが、ブール値のインデックス付けは提供されず、常に整数の位置ではなくラベルによってアクセスされます。
Pandas DataFrame でのラベルベースのインデックス作成の探索: 実践的な例
例 1: ラベルベースのインデックス作成に loc を使用する
DataFrame でのラベルベースのインデックス作成のための loc の使用法を以下の例に示します。
import pandas as pd
# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)
# Set 'Name' as the index
df.set_index('Name', inplace=True)
# Access data using loc
print(df.loc['Anna'])
出力
Age 24
City Los Angeles
Name: Anna, dtype: object
この図では、DataFrame を構築し、「Name」列をインデックスとして指定しました。次に、df.loc['Anna'] を使用して、「Anna」に関連するすべての情報を取得しました。
例 2: at を使用したスカラー値への高速アクセス
at を使用してラベルベースの高速スカラー検索を行う方法は次のとおりです。
import pandas as pd
# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)
# Set 'Name' as the index
df.set_index('Name', inplace=True)
# Access data using at
print(df.at['Peter', 'Age'])
出力
35
この例では、df.at['Peter', 'Age'] を使用して、DataFrame から Peter の年齢を迅速に取得しました。
例 3: loc を使用したラベルベースのスライス
loc 属性を使用して DataFrame をスライスすることもできます。
import pandas as pd
# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda', 'Paul', 'Diana'],
'Age': [28, 24, 35, 32, 38, 27],
'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston', 'Chicago', 'Seattle']}
df = pd.DataFrame(data)
# Set 'Name' as the index
df.set_index('Name', inplace=True)
#Slicing using loc
print(df.loc['Anna':'Linda'])
出力
Age City
Name
Anna 24 Los Angeles
Peter 35 San Francisco
Linda 32 Houston
この例では、「Anna」から「Linda」までのすべての行を包括的に取得する「df.loc['Anna':'Linda']」を使用して、DataFrame でスライスを実行しました。
ラベルベースのインデックス作成の力を活用する
Pandas DataFrame のラベルベースのインデックス作成には多くの利点があります。最も明白な利点は、整数の位置の代わりに意味のあるラベルが使用されるため、コードの読みやすさと理解が向上することです。データ操作の複雑さが増すにつれて、これはますます有利になります。
さらに、ラベルベースのインデックス作成により、データにアクセスするためのより信頼性の高い方法が提供されます。ラベルベースのインデックスは、DataFrame の行が再配置された場合でも、引き続き正確なデータを取得します。
結論
データ分析の分野では、データに効果的にアクセスして操作することが非常に重要です。 「loc」属性と「at」属性を使用することで、Pandas DataFrame のラベルベースのインデックス作成により、データにアクセスするためのシンプルかつ効果的な方法が提供されます。整数インデックスを明示的なラベルで置き換えることができると、コードはより読みやすく、保守しやすくなります。実際の例によって裏付けられたラベルベースのインデックス作成に関するこの詳しい知識は、Python での Pandas ベースのデータ処理割り当てに強固な基盤を提供するはずです。データ分析を伴うプロジェクトでは、ラベルベースのインデックス作成の可能性を最大限に活用してください。