请检查有关 "sort_values" 的错误消息

Please check error message about "sort_values"

此问题已解决。 "Env"("Env ")中有一个看不见的space。以下代码是正确的。

问题:

我不明白有关 sort_values 的错误消息。 下面是打印的数据框。

 print(df)
                                          Value1  Value2  Value3  Value4
     Function Type       Name                                           
     Env      condition   Board             BD#1    BD#2    BD#3    BD#4
                          Temp             High     Room    Low    High 
                          Volt              High     Low     Typ    High
                          SIDD               200      85     185     200
                          Freq             1600M   1600M   1600M   1600M
     CBT      status      CBT_CH0             00      00      00      00
              Input       Data0_CH0           0B      0A      0B      0A
                          Data1_CH0           0C      0C      0D      0B
                          Data2_CH0           07      08      09      06
                          Data3_CH0           06      05      04      08
                          Data4_CH0           01      01      01      03
                          Data5_CH0           00      01      01      02
              Output      Data0_CH0_out       0B      0A      0B      0A
                          Data1_CH0_out       0C      0C      0A      0B
                          Data2_CH0_out       07      04      05      06
                          Data3_CH0_out       06      08      09      05
                          Data4_CH0_out       01      03      04      02
                          Data5_CH0_out       00      02      03      01
              status      CBT_CH1             00      01      02      01
              Input       Data0_CH1           0B      0C      0D      0A
                          Data1_CH1           0C      0B      0A      0D
                          Data2_CH1           07      06      05      08
                          Data3_CH1           06      07      06      07
                          Data4_CH1           01      02      03      02
                          Data5_CH1           00      00      01      01
              Output      Data0_CH1_out       0B      0A      0B      0C
                          Data1_CH1_out       0C      0B      0C      0B
                          Data2_CH1_out       07      07      08      06
                          Data3_CH1_out       06      04      05      04
                          Data4_CH1_out       01      02      03      02
                          Data5_CH1_out       00      01      02      01

我使用 sort_values 按字母顺序按索引对列进行排序。

  df= df.sort_values(by=('Env','condition','Temp'), axis=1)

但是,出现了错误信息。

我认为索引列表('Env','condition','Temp')是正确的。

我不明白下面的错误消息以及为什么会出现这种情况。

请让我知道以下消息的含义。

     ---------------------------------------------------------------------------
     KeyError                                  Traceback (most recent call last)
     <ipython-input-57-1a4fbe80928c> in <module>()
     ----> 1 df= df.sort_values(by=('Env','condition','Temp'), axis=1)

     C:\UsersZD970\Anaconda3\lib\site-packages\pandas\core\frame.py in sort_values(self, by, axis, ascending, inplace, kind, na_position)
        4419             by = by[0]
        4420             k = self._get_label_or_level_values(by, axis=axis,
     -> 4421                                                 stacklevel=stacklevel)
        4422 
        4423             if isinstance(ascending, (tuple, list)):

     C:\UsersZD970\Anaconda3\lib\site-packages\pandas\core\generic.py in _get_label_or_level_values(self, key, axis, stacklevel)
        1380             values = self.axes[axis].get_level_values(key)._values
        1381         else:
     -> 1382             raise KeyError(key)
        1383 
        1384         # Check for duplicates

     KeyError: ('Env', 'condition', 'Temp')

您唯一需要更改的是:

df= df.sort_values(by=['Env','condition','Temp'], axis=1)

by 参数采用字符串值或字符串值列表。不是元组,(就像你做的那样)。

遇到了同样的问题,我解决了它避开了参数轴