如何比较字典值和熊猫数据帧



所以,我有这样的数据帧,从csv文件导入

数学JamesTom60>td style="text-align:left;">70Jerry9060

您可以将boolean indexingloc:一起使用

df.loc[df[data].eq(data.values()).all(1), 'name']

1    Tom
Name: name, dtype: object

返回数据和DataFrame:的交集

df_str = '''
name    math    physic
James   80  90
Tom 60  70
Jerry   90  60
'''
df = pd.read_csv(io.StringIO(df_str.strip()), sep='s+', index_col=False)
data = {'math': 60, 'physic': 70}
def query_name(data):
df2 = pd.Series(data).to_frame().T
dfn = pd.merge(df, df2, on=['math', 'physic'], how='inner')
return dfn
data = {'math': 90, 'physic': 60}
query_name(data)
['Jerry']

通常find操作在panda和numpy中效率不高,但可以做到:

df[(df['math'] == mydict['math'] )& (df['physic'] == mydict['physic'] )]['name'][0]
'Tom'

最新更新