如何從 Pandas DataFrame 單元格獲取值

Asad Riaz 2023年1月30日
  1. iloc 從 Pandas DataFrame 的單元中獲取價值
  2. 從 Pandas DataFrame 的單元中獲取 iatat 來獲取值
  3. df['col_name'].values[] 從 Pandas DataFrame 的單元格獲取值
如何從 Pandas DataFrame 單元格獲取值

我們將介紹使用 iloc 來從 Pandas DataFrame 的單元格中獲取值的方法,該方法非常適合按位置進行選擇;我們還會介紹它與 loc 的區別。我們還將學習 iat['col_name'].values[] 方法,當我們不想將返回型別設為 pandas.Series 時,可以使用它們。

iloc 從 Pandas DataFrame 的單元中獲取價值

iloc 是從 Pandas dataframe 單元中獲取值的最有效方法。假設,我們有一個 DataFrame,其列的名稱分別為 pricestock,並希望從第三行獲取一個值以檢查價格和庫存狀況。

首先,我們需要訪問行,然後使用列名訪問值。

示例程式碼:

# 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 的單元格中獲取值。

示例程式碼:

# 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

df['col_name'].values[] 從 Pandas DataFrame 的單元格獲取值

df['col_name'].values[] 首先將 datafarme 列轉換為一維陣列,然後訪問該陣列索引處的值:

示例程式碼:

# 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