我有一个基于"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