如何用pandas旋转这个数据框架

2024-09-30 14:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着把这个数据框“a”转过来:

  algoasdaa      rc      rmse
0       asa   20-50  0.585161
1       asa  20-100  0.462159
2       asa  40-100  2.664910
3       asa  60-200  3.957400
4       asa  60-300  3.799590
5      lorl   20-50  0.696916
6      lorl  20-100  0.456810
7      lorl  40-100  2.489900
8      lorl  60-200  4.004530
9      lorl  60-300  3.736500

通过调用pivot方法

^{pr2}$

但我一直在犯错

KeyError: 'no item named rmse'

尽管这个例子看起来和docs中描述的完全一样

提前谢谢!在


Tags: 数据方法nodocsitem例子namedpivot
1条回答
网友
1楼 · 发布于 2024-09-30 14:38:17

这应该行得通,对我也有用:

>>> df.pivot("rc", "algoasdaa", "rmse")
algoasdaa       asa      lorl
rc                           
20-100     0.462159  0.456810
20-50      0.585161  0.696916
40-100     2.664910  2.489900
60-200     3.957400  4.004530
60-300     3.799590  3.736500

我怀疑您的rmse列名中有一些您看不到的空白。例如,如果我添加一个空格,它看起来是一样的:

^{pr2}$

但是:

>>> df.pivot("rc", "algoasdaa", "rmse")
Traceback (most recent call last):
[...]
KeyError: u'no item named rmse'

试试看

>>> print df.columns
Index([u'rc', u'algoasdaa', u' rmse'], dtype=object)

来证实这一点。然后,您可以修复您的读取操作(best),或者在事后用类似的方法修补它们

>>> df.columns = [col.strip() for col in df.columns]

或者

>>> df.columns = pd.Series(df.columns).str.strip()

相关问题 更多 >