Python 请检查有关“的错误消息”;排序“U值”;

Python 请检查有关“的错误消息”;排序“U值”;,python,pandas,sorting,dataframe,message,Python,Pandas,Sorting,Dataframe,Message,这个问题解决了。 在“Env”(“Env”)中有一个不可见的空间。下面的代码是正确的 问题: 我不理解有关sort_值的错误消息。 下面是打印的数据框 print(df) Value1 Value2 Value3 Value4 Function Type Name Env con

这个问题解决了。 在“Env”(“Env”)中有一个不可见的空间。下面的代码是正确的

问题:

我不理解有关sort_值的错误消息。 下面是打印的数据框

 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_值按字母顺序按索引对列进行排序

  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:\Users\13ZD970\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:\Users\13ZD970\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')
---------------------------------------------------------------------------
KeyError回溯(最近一次呼叫最后一次)
在()
---->1 df=df.sort_值(按=('Env','condition','Temp'),轴=1)
C:\Users\13ZD970\Anaconda3\lib\site packages\pandas\core\frame.py中的排序值(self、by、axis、升序、原地、种类、na_位置)
4419 by=by[0]
4420 k=自身。获取标签值或级别值(通过,轴=轴,
->4421堆栈级别=堆栈级别)
4422
4423如果isinstance(升序,(元组,列表)):
C:\Users\13ZD970\Anaconda3\lib\site packages\pandas\core\generic.py in\u get\u label\u或\u level\u值(self、key、axis、stacklevel)
1380 values=self.axes[axis]。获取\u级别\u值(键)。\u值
1381其他:
->1382升起钥匙错误(钥匙)
1383
1384#检查有无重复
KeyError:('Env','condition','Temp')

您唯一需要更改的是:

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

by参数采用字符串值或字符串值列表。不是元组(正如您所做的)。

尝试
df=df.sort_值(按=['Env'、'condition'、'Temp'])
,请注意,错误堆栈跟踪与发布的代码看起来不同。如果转置df,则列将成为索引,因此需要传递axis=1对不起,我发布了错误的参数。尽管我使用了df=df.sort_值(('Env','condition','Temp',axis=1)),但还是出现了上述错误消息。我根据您的建议对其进行了修改。错误消息的内容已更改。实际上,您不需要
df.sort_值(按=['Function','Type','Name'],axis=1)
您传递的是多索引数据帧中的顶级值。生成了新的错误消息