如何生成新索引,按变量对组进行排名?
How to produce new index, ranking groups by variable?
想知道我可以使用什么样的分组来产生这个结果。
输入:
Root Strike
33 AAL 49
43 AAL 49
44 AAL 49.5
35 AAL 50
45 AAL 50
输出
Strike Num Root Strike
33 1 AAL 49
43 1 AAL 49
44 2 AAL 49.5
35 3 AAL 50
45 3 AAL 50
您不需要分组依据。
您想要创建一个新列 'Strike Num' 按 Strike 对行进行排名。
pandas rank() 自动进行分组、排序,并让您控制关系的索引方式;这里你希望排名最小:method='min'
df = pd.read_csv(pd.compat.StringIO(data), index_col=0, sep='\s+')
df.insert(0, 'Strike Num', df.Strike.rank(method='min').astype(int))
Strike Num Root Strike
33 1 AAL 49.0
43 1 AAL 49.0
44 3 AAL 49.5
35 4 AAL 50.0
45 4 AAL 50.0
想知道我可以使用什么样的分组来产生这个结果。
输入:
Root Strike
33 AAL 49
43 AAL 49
44 AAL 49.5
35 AAL 50
45 AAL 50
输出
Strike Num Root Strike
33 1 AAL 49
43 1 AAL 49
44 2 AAL 49.5
35 3 AAL 50
45 3 AAL 50
您不需要分组依据。
您想要创建一个新列 'Strike Num' 按 Strike 对行进行排名。
pandas rank() 自动进行分组、排序,并让您控制关系的索引方式;这里你希望排名最小:method='min'
df = pd.read_csv(pd.compat.StringIO(data), index_col=0, sep='\s+')
df.insert(0, 'Strike Num', df.Strike.rank(method='min').astype(int))
Strike Num Root Strike
33 1 AAL 49.0
43 1 AAL 49.0
44 3 AAL 49.5
35 4 AAL 50.0
45 4 AAL 50.0