问题设置Python的熊猫GROUPBY,排名,然后根据自定义排名
大熊猫据帧
df = pd.DataFrame({'Group': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'], 'Subgroup': ['Group 1', 'Group 1', 'Group 1', 'Group 1', 'Group 1', 'Group 1', 'Group 2', 'Group 2', 'Group 2'], 'Keyword': ['kw 1', 'kw 1', 'kw 1', 'kw 2', '+kw +2', 'kw 2', 'kw 3', 'kw 3', 'kw 3'], 'Normalized': ['kw 1', 'kw 1', 'kw 1', 'kw 2', 'kw 2', 'kw 2', 'kw 3', 'kw 3', 'kw 3'], 'Criterion Type': ['Exact', 'Phrase', 'Broad', 'Phrase', 'Broadified', 'Exact', 'Broad', 'Exact', 'Phrase'], 'Max CPC': [1.62, 1.73, 0.87, 1.70, 0.85, 1.60, 0.99, 1.58, 1.68], 'CPC Rank': [2, 1, 3, 1, 3, 2, 3, 2, 1], 'Type Rank': [1, 2, 3, 2, 3, 1, 3, 1, 2]})
该值分配给获得在正确的位置的列:
df = df[['Group', 'Subgroup', 'Keyword', 'Normalized', 'Criterion Type', 'Max CPC', 'CPC Rank', 'Type Rank']]
目标
groupby
['Group', 'Subgroup', 'Normalized']
,然后rank
Max CPC
s。接下来,我要地图关联到CPC Rank
到Type Rank
这是基于Criterion Type
确定,我自己的自定义排名的Max CPC
: {'Exact':1, 'Phrase':2, 'Broadified':3, 'Broad':4}
的结果将是New CPC
列其适当Max CPC
。
当我尝试你的榜样,最终,'最大CPC'等于'新CPC'这不应该发生,因为我想为基础,以重新分配'最大CPC's他们的“CPC排名”和关键字的“标准类型”。 – Jarad
@Jarad抱歉,我无法理解您的要求。请再次清楚解释,我会在上面更改我的答案。 – shanmuga