2024-05-23 14:25:28 发布
网友
我有一个数据框:
df = pd.DataFrame([ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}])
现在我想重审乔治的年龄:
df[df.name == 'george'].age
但这会输出一些附加信息和原始值:
0 23 Name: age, dtype: int64
我怎么才能让它打印出来?
不妨让我的评论成为一个答案:
df[df.name == 'george'].age.values[0]
或者
int(df[df.name == 'george'].age)
应该有用
df = [ { 'name': 'george', 'age': 23 }, {'name': 'anna', 'age': 26}] k = [x['age'] for x in df if x['name'] == 'george'] print k
您可以使用^{}+^{}将Serie转换为numpy array,然后通过[0]选择第一个值:
Serie
numpy array
[0]
print (df.loc[df.name == 'george', 'age'].values) [23] print (df.loc[df.name == 'george', 'age'].values[0]) 23
或者只需使用^{}选择Series的第一个值:
Series
print (df.loc[df.name == 'george', 'age'].iloc[0]) 23
或按^{}选择第一项:
print (df.loc[df.name == 'george', 'age'].iat[0]) 23
或者使用^{}:
print (df.loc[df.name == 'george', 'age'].item()) 23
如果可能没有匹配值,则上述解决方案失败。
然后可以使用next和iter技巧:
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
不妨让我的评论成为一个答案:
或者
应该有用
您可以使用^{} +^{} 将
Serie
转换为numpy array
,然后通过[0]
选择第一个值:或者只需使用^{} 选择
Series
的第一个值:或按^{} 选择第一项:
或者使用^{} :
如果可能没有匹配值,则上述解决方案失败。
然后可以使用
next
和iter
技巧:相关问题 更多 >
编程相关推荐