如何从 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