1

I have a pivot table named "df_thd_funct_mode1_PVT".It looks like as shown below.

enter image description here

Below is my code for plotting the pivot chart.

THD_PVT_2V5 = df_thd_funct_mode1_PVT[df_thd_funct_mode1_PVT['Supply'] == 2.5].pivot_table(index='Temp', columns='xvalues', values=['94','100','110','115','120','124','128','129','130'])
# THD_PVT_2V5['SPEC_MIN']= 37
# THD_PVT_2V5['SPEC_TYP']= 38.3
# THD_PVT_2V5['SPEC_MAX']= 39.6
THD_PVT_2V5.iplot(title='THD vs TEMPERATURE @ 2.5V FUNCTIONAL RANGE', xaxis_title='TEMPERATURE', yaxis_title='THD',width=3)

As per my knowledge all my key values are correct,but I am getting an error.It is given below.

"KeyError                                  Traceback (most recent call last)
File C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py:3621, in Index.get_loc(self, key, method, tolerance)
   3620 try:
-> 3621     return self._engine.get_loc(casted_key)
   3622 except KeyError as err:

File C:\ProgramData\Anaconda3\lib\site-packages\pandas\_libs\index.pyx:136, in pandas._libs.index.IndexEngine.get_loc()

File C:\ProgramData\Anaconda3\lib\site-packages\pandas\_libs\index.pyx:163, in pandas._libs.index.IndexEngine.get_loc()

File pandas\_libs\hashtable_class_helper.pxi:5198, in pandas._libs.hashtable.PyObjectHashTable.get_item()

File pandas\_libs\hashtable_class_helper.pxi:5206, in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Supply'

The above exception was the direct cause of the following exception:

KeyError                                  Traceback (most recent call last)
Input In [249], in <cell line: 1>()
----> 1 THD_PVT_2V5 = df_thd_funct_mode1_PVT[df_thd_funct_mode1_PVT['Supply'] == 2.5].pivot_table(index='Temp', columns='xvalues', values=['94','100','110','115','120','124','128','129','130'])
      2 # THD_PVT_2V5['SPEC_MIN']= 37
      3 # THD_PVT_2V5['SPEC_TYP']= 38.3
      4 # THD_PVT_2V5['SPEC_MAX']= 39.6
      5 THD_PVT_2V5.iplot(title='THD vs TEMPERATURE @ 2.5V FUNCTIONAL RANGE', xaxis_title='TEMPERATURE', yaxis_title='THD',width=3)

File C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py:3505, in DataFrame.__getitem__(self, key)
   3503 if self.columns.nlevels > 1:
   3504     return self._getitem_multilevel(key)
-> 3505 indexer = self.columns.get_loc(key)
   3506 if is_integer(indexer):
   3507     indexer = [indexer]

File C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py:3623, in Index.get_loc(self, key, method, tolerance)
   3621     return self._engine.get_loc(casted_key)
   3622 except KeyError as err:
-> 3623     raise KeyError(key) from err
   3624 except TypeError:
   3625     # If we have a listlike key, _check_indexing_error will raise
   3626     #  InvalidIndexError. Otherwise we fall through and re-raise
   3627     #  the TypeError.
   3628     self._check_indexing_error(key)

KeyError: 'Supply'
"

Sample pivot table is given below

        94  100 110 115 120 124 128 129 130
Temp    xvalues Supply                                  
-40 MAIN_001    2.5 0.1644  0.0844  0.032   0.1202  0.3129  0.2177  2.9942  6.9715  9.9139
        2.7 0.1591  0.08545 0.03065 0.12305 0.32265 0.22645 2.57495 6.54425 9.49495
        3.6 0.15775 0.083   0.02825 0.112   0.32735 0.2325  2.7538  6.72915 9.57755
-60 MAIN_005    2.5 0.1868  0.0972  0.0521  0.6005  0.8448  0.7479  5.157   45.9854 0.7479
        2.7 0.2047  0.1068  0.0532  0.603   0.8502  0.7521  5.1481  39.4838 0.7521
        3.6 0.1909  0.0992  0.0567  0.5917  0.8612  0.7626  5.1195  42.9942 0.7626

May I know where I went wrong.

Hari
  • 333
  • 6
  • 18
  • 1
    Please post the complete error report starting with traceback. You can surround the report with 3` before and 3` after to properly format the output. **DO NOT** post images of code, links to code, data, error messages, etc. - copy or type the text into the question. – itprorh66 Jul 25 '22 at 13:36
  • I updated the question with complete error details.If you don't mind could you please check – Hari Jul 25 '22 at 13:52
  • In order for us to help you, it is necessary that you show your effort and submit data to be used to reproduce your problem. While providing an image is helpful, it doesn't allow for reproducing the issue. Please edit your question to show a minimal reproducible set. See [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example "Minimal Reproducible Example") for details. – itprorh66 Jul 25 '22 at 14:23
  • I added the sample set – Hari Jul 25 '22 at 15:22

1 Answers1

1
arrays = [np.array([-40, -40, -40, -60, -60, -60]), np.array(["MAIN_001", "MAIN_001", "MAIN_001", "MAIN_005", "MAIN_005", "MAIN_005",]), np.array([2.5, 2.7, 3.6, 2.5, 2.7, 3.6])]
df = pd.DataFrame({94: [0.1644, 0.1591, 0.15775, 0.1868, 0.2047, 0.1909],
                   100: [0.0844, 0.08545, 0.083, 0.0972, 0.1068, 0.0992],
                   110: [0.032, 0.03065, 0.02825, 0.0521, 0.0532, 0.0567],
                   115: [0.1202, 0.12305, 0.112, 0.6005, 0.603, 0.5917],
                   120: [0.3129, 0.32265, 0.32735, 0.8448, 0.8502, 0.8612],
                   124: [0.2177, 0.22645, 0.2325, 0.7479, 0.7521, 0.7626],
                   128: [2.9942, 6.9715, 9.9139, 5.157, 39.4838, 42.9942],
                   129: [6.9715, 9.9139, 0.7479, 45.9854, 0.7479, 0.7521],
                   130: [9.9139, 0.7479, 0.7521, 0.7479, 0.7521, 0.7626]}, index=pd.MultiIndex.from_arrays(arrays, names=['Temp', 'Supply', 'xvalues']))
df

enter image description here




The problem is the dataframe with MultiIndex, we select it with get_level_values()

df_select = df.iloc[df.index.get_level_values('xvalues') == 2.5]
df_select.iplot(title='THD vs TEMPERATURE @ 2.5V FUNCTIONAL RANGE', xaxis_title='TEMPERATURE', yaxis_title='THD',width=3)

enter image description here Please note that I disorder the sequence of index name Temp, Supply, xvalues. in yours, it should be Temp, xvalues, Supply. Therefore the selection would be df_select = df.iloc[df.index.get_level_values('Supply') == 2.5]

Baron Legendre
  • 2,053
  • 3
  • 5
  • 22