我有一个这样的功能:
def percent(a, b):
dataframes_list = [a, b]
for df in dataframes_list:
df.rename(columns={'A': 'q1', 'B': 'q2', 'C': 'q3', 'D': 'q4', 'E': 'q5', 'F': 'q6'}, inplace = True)
df = (df.filter(like = 'q').groupby([df['Name'],
df['Type'],df['Date']]).agg(lambda x: x.eq(4).sum()/x.count()))
df = df.reset_index()
df = pd.melt(df, id_vars=['Name','Type','Date'], value_vars= ['q1','q2','q3','q4','q5','q6'])
df.rename(columns = {'value':'percent'}, inplace = True)
return df
percent_df = percent(a, b)
print(percent)
我想把这个函数应用到两个括号'a'和'b'上。该函数应该对两个嵌套框进行必要的更改。上面的print语句只打印出了对象a,而没有打印出对象b。此外,框架'a'似乎没有函数应该做的更改。这是怎么回事?
2条答案
按热度按时间dfty9e191#
首先,你的缩进是一团糟,所以很难确定这是否是问题的根本原因。
也就是说,看起来你的return被放置在for循环中,所以它会在处理第一个DF后退出。试试这个:
ecfdbz9o2#
你是在循环的第一次迭代结束时返回的,所以它永远不会处理第二个嵌套框。
将所有修改过的字符串收集到一个列表中并返回。