如何从 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
,并且使用起来最简单。