如何从 Pandas DataFrame 单元格获取值

Asad Riaz 2023年1月30日 2020年3月28日
  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