是否有一个选项,以一个字符串,并使用它来访问具有相同名称的数据框架在python?



我有一个基于"code"需要对不同的数据框架做同样的事情。所以现在这个函数只需要改变数据框架的名称就可以重复它自己了。

def function(t, d, code):
if code == "champion":
temp = champion_league.loc[(champion_league['match_date'] == d) & 
(champion_league['kot'] < t)]
if temp.empty:
return 0
else:
return 1
elif code == "europe":
temp = earopean_leagues.loc[(earopean_leagues['match_date'] == d) & 
(earopean_leagues['kot'] < t)]
if temp.empty:
return 0
else:
return 1

我试图将df名称更改为给定的代码(其中给定的代码与其中一个数据框架同名)。但是,我得到一个错误,字符串没有'loc'属性。

def while_champion_european_leagues(t, d, code):
temp = code.loc[(code['match_date'] == d) & (code['kot'] < t)]
if temp.empty:
return 0
else:
return 1

我怎样才能改变我的函数,使它不会重复自己,并将访问基于给定的"代码"右df ?

您可以使用映射字典:

codes = {
'champion': champion_league,
'europe': european_leagues
}
def function(t, d, code):
df = codes.get(code)  # df is champion_league or european_leagues
temp = df.loc[(df['match_date'] == d) & (df['kot'] < t)]
if temp.empty:
return 0
else:
return 1

相关内容

  • 没有找到相关文章

最新更新