Pandas DataFrame のセルの値を取得する方法
Asad Riaz
2023年1月30日
-
Pandas Dataframe のセルの値を取得するための
iloc
-
Pandas
DataFrame
のセルの値を取得するためのiat
とat
-
Pandas
DataFrame
のセルの値を取得するためのdf['col_name'].values[]
Pandas DataFrame
のセルの値を取得する方法を紹介します。これには iloc
と iat
が含まれます。['col_name'].values[]
も、特に戻り値の型を pandas.Series
として取得したくない場合の解決策です。
Pandas Dataframe のセルの値を取得するための iloc
iloc
は、Pandas DataFrame
のセルから値を取得する最も効率的な方法です。たとえば、列の名前が price
と stock
の DataFrame
があり、3 行目の値を取得して価格と在庫状況を確認するとします。
まず、行にアクセスし、次に列名を使用して値にアクセスする必要があります。
コード例:
# python 3.x
import pandas as pd
df = pd.DataFrame(
{
"name": ["orange", "banana", "lemon", "mango", "apple"],
"price": [2, 3, 7, 21, 11],
"stock": ["Yes", "No", "Yes", "No", "Yes"],
}
)
print(df.iloc[2]["price"])
print(df.iloc[2]["stock"])
出力:
7
Yes
iloc
は、インデックスの特定の位置にある行(または列)を取得します。これが、引数として整数のみを取る理由です。そして、loc
はインデックスから特定のラベルを持つ行(または列)を取得します。
Pandas DataFrame
のセルの値を取得するための iat
と at
iat
と at
は、スカラーが Pandas DataFrame
のセルから value
を取得するための高速アクセスです。
コード例:
# python 3.x
import pandas as pd
df = pd.DataFrame(
{
"name": ["orange", "banana", "lemon", "mango", "apple"],
"price": [2, 3, 7, 21, 11],
"stock": ["Yes", "No", "Yes", "No", "Yes"],
}
)
print(df.iat[0, 0])
print(df.at[1, "stock"])
出力:
orange
No
最後の行のエントリを取得するには、at[df.index[-1],'stock']
を使用します。
コード例:
# python 3.x
import pandas as pd
df = pd.DataFrame(
{
"name": ["orange", "banana", "lemon", "mango", "apple"],
"price": [2, 3, 7, 21, 11],
"stock": ["Yes", "No", "Yes", "No", "Yes"],
}
)
print(df.at[df.index[-1], "stock"])
出力:
Yes
Pandas DataFrame
のセルの値を取得するための df['col_name'].values[]
df['col_name'].values[]
は最初に datafarme
列を 1 次元配列に変換し、次にその配列のインデックスの値にアクセスします:
コード例:
# python 3.x
import pandas as pd
df = pd.DataFrame(
{
"name": ["orange", "banana", "lemon", "mango", "apple"],
"price": [2, 3, 7, 21, 11],
"stock": ["Yes", "No", "Yes", "No", "Yes"],
}
)
print(df["stock"].values[0])
出力:
Yes
pandas.Series
を返さず、最も簡単に使用できます。