Pandas DataFrame のセルの値を取得する方法

  1. Pandas Dataframe のセルの値を取得するための iloc
  2. Pandas Dataframe のセルの値を取得するための iatat
  3. Pandas Dataframe のセルの値を取得するための df['col_name'].values[]

Pandas Dataframe のセルの値を取得する方法を紹介します。これには ilociat が含まれます。['col_name'].values[] も、特に戻り値の型を pandas.Series として取得したくない場合の解決策です。

Pandas Dataframe のセルの値を取得するための iloc

iloc は、Pandas Dataframe のセルから値を取得する最も効率的な方法です。たとえば、列の名前が pricestockdataframe があり、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 のセルの値を取得するための iatat

iatat は、スカラーが 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 を返さず、最も簡単に使用できます。

関連記事 - Pandas DataFrame

  • Pandas Dataframe の列で NaN の発生をカウントする方法
  • Pandas DataFrame に 1 行を追加する方法
  • comments powered by Disqus