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 值?
一般来说,形式的条件
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)