我有一个包含位置ID、商店名称和商店收入的数据框。我想确定每个地区收入最高的商店
我为此写了一个代码,但不确定是否有更好的方法来处理这个案子
import pandas as pd
dframe=pd.DataFrame({"Loc_Id":[1,2,2,1,2,1,3,3],"Store":["A","B","C","B","D","B","A","C"],
"Revenue":[50,70,45,35,80,70,90,65]})
#group by location id, then save max per location in new column
dframe["max_value"]=dframe.groupby("Loc_Id")["Revenue"].transform(max)
#create new column by checking if the revenue equal to max revenue
dframe["is_loc_max"]=dframe.apply(lambda x: 1 if x["Revenue"]==x["max_value"] else 0,axis=1)
#drop the intermediate column
dframe.drop(columns=["max_value"],inplace=True)
这是所需的输出:
有没有更好的方法得到这个输出