Python 如何使用pandas透视此数据帧

Python 如何使用pandas透视此数据帧,python,pandas,Python,Pandas,我正在尝试透视此数据帧“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.4

我正在尝试透视此数据帧“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方法

a.pivot('rc', 'algoasdaa', 'rmse')
但我一直在犯错误

KeyError: 'no item named rmse'
尽管这个案例看起来和


提前谢谢

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

>>> 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
列名中有一些空白,您看不到。例如,如果我添加一个空格,它看起来是一样的:

>>> df.columns = ["rc", "algoasdaa", " rmse"]
>>> df
     rc algoasdaa      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
但是:

试一试

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

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


DSM你的怀疑是对的。我现在觉得有点傻。谢谢
>>> print df.columns
Index([u'rc', u'algoasdaa', u' rmse'], dtype=object)
>>> df.columns = [col.strip() for col in df.columns]
>>> df.columns = pd.Series(df.columns).str.strip()