擅长:python、mysql、java
<p>可以使用<a href="https://stackoverflow.com/q/36901/2901002">^{<cd1>}</a>进行动态输入(值的顺序不能更改),使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.query.html" rel="nofollow noreferrer">^{<cd2>}</a>进行过滤:</p>
<pre><code>def get_top(*args):
c = ['maritalstatus', 'gender', 'age_range', 'occ']
m = (df.groupby(c)['rating'].apply(lambda x: x.value_counts().index[0])
.reset_index())
args = list(args)
while True:
d = dict(zip(c, args))
#https://stackoverflow.com/a/48371587/2901002
q = ' & '.join((('({} == "{}")').format(i, j)) for i, j in d.items())
m1 = m.query(q)['rating']
if m1.empty and len(args) > 1:
args.pop()
else:
return m1
print(get_top('ma', 'M', 'young','teacher'))
1 PG
Name: rating, dtype: object
</code></pre>