我有一个数据框:
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
如果可能没有匹配值,则上述解决方案将失败。
然后可以使用
next
和iter
技巧: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/