Python 请检查有关“的错误消息”;排序“U值”;
这个问题解决了。 在“Env”(“Env”)中有一个不可见的空间。下面的代码是正确的 问题: 我不理解有关sort_值的错误消息。 下面是打印的数据框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
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)
您传递的是多索引数据帧中的顶级值。生成了新的错误消息