我有一个数据框:

df = pd.DataFrame([ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}])

现在,我想回顾一下乔治的年龄:
df[df.name == 'george'].age

但这会输出一些额外的信息以及原始值:
0    23
Name: age, dtype: int64

我怎样才能得到它打印23

最佳答案

您可以使用 loc + values Serie转换为numpy array,然后通过[0]选择第一个值:

print (df.loc[df.name == 'george', 'age'].values)
[23]
print (df.loc[df.name == 'george', 'age'].values[0])
23

或者直接使用 Series 选择iloc的第一个值:
print (df.loc[df.name == 'george', 'age'].iloc[0])
23

或通过 iat 选择第一项:
print (df.loc[df.name == 'george', 'age'].iat[0])
23

或使用 Series.item :
print (df.loc[df.name == 'george', 'age'].item())
23

如果可能没有匹配值,则上述解决方案将失败。

然后可以使用nextiter技巧:
print (next(iter(df.loc[df.name == 'george', 'age']),'no match value'))
23

print (next(iter(df.loc[df.name == 'jano z hornej dolnej', 'age']),'no match value'))
no match value

关于python - 单独打印列的原始值(以 Pandas 为单位)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36261334/

10-14 04:53