2017-03-09 62 views
1

我想知道是否有进行排序(计算百分位数)跨列的熊猫数据帧具有下列条件的说服力的方式:熊猫:排序/百分比列的类别内的每一行

执行每个类别内的百分计算。每列将属于一个类别和百分制计算要在每个类别中进行(请参阅链接的图形化描述。)

我知道我能做到这将忽略类别如下:

TargetRanking = StartingData.rank(axis="columns", pct=True) 

但我需要按每列的类别分组每行。请参阅以下链接的图形说明。

enter image description here

回答

0

假设您有相关的类别映射的字典,你可以简单地按该字典列,然后使用rank如以前。

categories = {'X1': 'A', 'X3': 'A', 'X5': 'A', 'X2': 'B', 'X4': 'B'} 

df.set_index('Date').groupby(categories, axis=1).rank(pct=True) 

enter image description here