我正在使用来自 here 的这个示例:
假设我有以下数据框:
>>> import pandas as pd
df=pd.DataFrame({'Name':['JOHN','ALLEN','BOB','NIKI','CHARLIE','CHANG'],
'Age':[35,42,63,29,47,51],
'Salary_in_1000':[100,93,78,120,64,115],
'FT_Team':['STEELERS','SEAHAWKS','FALCONS','FALCONS','PATRIOTS','STEELERS']})
>>> df=pd.DataFrame({'Name':['JOHN','ALLEN','BOB','NIKI','CHARLIE','CHANG'],
... 'Age':[35,42,63,29,47,51],
... 'Salary_in_1000':[100,93,78,120,64,115],
... 'FT_Team':['STEELERS','SEAHAWKS','FALCONS','FALCONS','PATRIOTS','STEELERS']})
>>> df
Name Age Salary_in_1000 FT_Team
0 JOHN 35 100 STEELERS
1 ALLEN 42 93 SEAHAWKS
2 BOB 63 78 FALCONS
3 NIKI 29 120 FALCONS
4 CHARLIE 47 64 PATRIOTS
5 CHANG 51 115 STEELERS
假设我想找到 Name='John' 和 Age=35 的薪水,即 100。当我在循环中调用时,执行此查询的最有效方法是什么。这就是我正在做的事情,它似乎返回一个
>>> val=df.loc[( (df['Age']== 35) & (df['Name']=="JOHN"))][['Salary_in_1000']]
>>> val
Salary_in_1000
0 100
>>> type(val)
<class 'pandas.core.frame.DataFrame'>
答案 0 :(得分:0)
您可以使用以下内容。这将为您提供价值...
val=df.loc[( (df['Age']== 35) & (df['Name']=="JOHN"))][['Salary_in_1000']]
答案 1 :(得分:0)
这里的语法是错误的。使用
val=df.loc[(df['Age']== 35) & (df['Name']=="JOHN"), 'Salary_in_1000']
或
val=df[(df['Age']== 35) & (df['Name']=="JOHN")]['Salary_in_1000']