返回 pandas 数据框中特定列的 int 值

Him*_*nAB 2 python numpy pandas

在我的数据框 DF 中,我有一个名为“A”的列,它的值是整数值。但是,当我想使用以下命令检索特定行的 A 值时

DF[DF.someCondition=condition].A
Run Code Online (Sandbox Code Playgroud)

它返回一个形状 (1,) 的对象,该对象不是 int,因为 int 没有形状。我想要 int 因为我想使用这个值作为另一个 numpy 数组的索引条目。如何检索 A 的值,使其成为 int 值?

unu*_*tbu 5

一般来说,形式的条件

DF.someCondition = condition
Run Code Online (Sandbox Code Playgroud)

可能不止一次为真。因此

DF[DF.someCondition=condition].A
Run Code Online (Sandbox Code Playgroud)

返回形状对象(1,)而不是标量值。如果您确定条件只为 True 一次,那么您可以使用提取标量值item

DF[DF.someCondition=condition].A.item()
Run Code Online (Sandbox Code Playgroud)

然而,正如MaxU 建议的那样,最好使用.loc以避免链式索引:

DF.loc[DF.someCondition=condition, 'A'].item()
Run Code Online (Sandbox Code Playgroud)

例如,

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(6).reshape(3,2), columns=list('AB'))
df[df['B']==3].A
# 1    2
# Name: A, dtype: int64

df.loc[df['B']==3, 'A'].item()
# 2
Run Code Online (Sandbox Code Playgroud)