我曾经使用一段代码使用dict对每个类别中的列进行排名。但是使用新的Pandas / Python3时,出现以下错误:
ValueError:传递的值的形状为(100,4),索引表示(100,100)
任何建议或帮助,我们将不胜感激。
下面是代码:
import pandas as pd
import numpy as np
d = dict()
d ={'A': 'Health Care', 'AA': 'Materials', 'B': 'Health Care', 'BB': 'Materials'}
data = pd.DataFrame(np.random.rand(100,4), index=range(0,100), columns=d.keys() )
data.groupby(d , axis = "columns").rank(axis = "columns", pct=True)
答案 0 :(得分:0)
尽管我使用的是Anaconda 3.6.4和Pandas 0.22.0,但我在计算机上运行了该代码,效果很好。也许是版本问题。这是正确的输出吗?
输出:
d = dict()
d ={'A': 'Health Care', 'AA': 'Materials', 'B': 'Health Care', 'BB': 'Materials'}
data = pd.DataFrame(np.random.rand(100,4), index=range(0,100), columns=d.keys() )
data.groupby(d , axis = "columns").rank(axis = "columns", pct=True)
A AA B BB
0.5 1.0 1.0 0.5
1.0 0.5 0.5 1.0
0.5 0.5 1.0 1.0
0.5 0.5 1.0 1.0
0.5 1.0 1.0 0.5
1.0 0.5 0.5 1.0
1.0 1.0 0.5 0.5
0.5 1.0 1.0 0.5
0.5 0.5 1.0 1.0
1.0 1.0 0.5 0.5