如何從 Pandas DataFrame 單元格獲取值
Asad Riaz
2023年1月30日
-
iloc
從 PandasDataFrame
的單元中獲取價值 -
從 Pandas DataFrame 的單元中獲取
iat
和at
來獲取值 -
df['col_name'].values[]
從 Pandas DataFrame 的單元格獲取值
我們將介紹使用 iloc
來從 Pandas DataFrame
的單元格中獲取值的方法,該方法非常適合按位置進行選擇;我們還會介紹它與 loc
的區別。我們還將學習 iat
和 ['col_name'].values[]
方法,當我們不想將返回型別設為 pandas.Series
時,可以使用它們。
iloc
從 Pandas DataFrame
的單元中獲取價值
iloc 是從 Pandas dataframe 單元中獲取值的最有效方法。假設,我們有一個 DataFrame
,其列的名稱分別為 price
和 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.iloc[2]["price"])
print(df.iloc[2]["stock"])
輸出:
7
Yes
iloc
在索引中的特定位置獲取行(或列)。這就是為什麼它僅採用整數作為引數的原因。然後 loc
從索引中獲取帶有特定標籤的行(或列)。
從 Pandas DataFrame 的單元中獲取 iat
和 at
來獲取值
iat
和 at
是標量的快速訪問方法,可從 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
,並且使用起來最簡單。