我正在尝试修改 python 3/pandas 中的以下数据集 Rank Maj Rank Maj Rank Maj Rank Maj Rank Maj Rank Maj0 2.00 31.92 3.00 0.00 4.00 33.72 5.00 24.89 6.00 0.00.1 7.00 148.351 8 28.26 9 0 10 5.96 11 7.66 12 0 13 6.192 14 5.63 15 0 16 17.43 17 26.73 18 0 19 84.73 20 25.98 21 0 22 8.65 23 6.38 24 0 25 3.984 26 2.44 27 0 28 3.43 29 2.75 30 0 31 1.85 32 1.46 33 0 34 1.79 35 2.49 36 0 37 2.516 38 1.85 39 0 40 1.48 41 1.05 42 0 43 0.567 44 0.36 45 0 46 0.31 47 0.2 49 0.32 50 0.2到一个数据帧中,第一列或索引将成为排名,第二列将成为 Maj 值。像这样的东西: Rank Maj 2.00 31.92 8 28.26 14 5.63 20 25.98 26 2.44 32 1.46 38 1.85 44 0.36 3.00 0.00 9 0 15 0 21 0 27 0 33 0 39 0 45 0 ... 13 6.19 19 84.7 25 3.98 31 1.8 37 2.51 43 0.56 50 0.2我正在尝试使用表枢轴来做到这一点:table.pivot_table(index = "Rank", columns = "Maj")但出现以下错误:Traceback (most recent call last): File "ReadReport.py", line 42, in <module> table.pivot_table(index = "Rank", columns = "Maj") File "C:\Python38-32\lib\site-packages\pandas\core\frame.py", line 6070, in pivot_table return pivot_table( File "C:\Python38-32\lib\site-packages\pandas\core\reshape\pivot.py", line 95, in pivot_table values = values.drop(key) File "C:\Python38-32\lib\site-packages\pandas\core\indexes\base.py", line 5013, in drop indexer = self.get_indexer(labels) File "C:\Python38-32\lib\site-packages\pandas\core\indexes\base.py", line 2733, in get_indexer raise InvalidIndexError(但我的排名没有任何重复的值。从 2 到 50。我的主要目标是打印军衔超过少校。
2 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
您可以使用np.reshape:
print (pd.DataFrame(df.to_numpy().reshape((-1, 2)), columns=["Rank", "Maj"]))
Rank Maj
0 2 31.92
1 3 0
2 4 33.72
3 5 24.89
4 6 0.00.1
5 7 148.35
6 8 28.26
7 9 0
8 10 5.96
9 11 7.66
...
叮当猫咪
TA贡献1776条经验 获得超12个赞
由于您只有两列,因此您可以执行以下操作:
pd.DataFrame({'Rank': df['Rank'].values.ravel(), 'Maj': df['Maj'].values.ravel()})
添加回答
举报
0/150
提交
取消