The following 'id_vars' are not present in the DataFrame: (list(missing))
Package:
pandas
30911

Exception Class:
KeyError
Raise code
"id_vars must be a list of tuples when columns are a MultiIndex"
)
else:
# Check that `id_vars` are in frame
id_vars = list(id_vars)
missing = Index(com.flatten(id_vars)).difference(cols)
if not missing.empty:
raise KeyError(
"The following 'id_vars' are not present "
f"in the DataFrame: {list(missing)}"
)
else:
id_vars = []
if value_vars is not None:
if not i
Links to the raise (1)
https://github.com/pandas-dev/pandas/blob/b3e335254f46a526ee3ce9bb757eac4011d9d1fe/pandas/core/reshape/melt.py#L81Ways to fix
Error code:
import pandas as pd
df = pd.DataFrame({'Name': {0: 'John', 1: 'Bob', 2: 'Shiela'},
'Course': {0: 'Masters', 1: 'Graduate', 2: 'Graduate'},
'Age': {0: 27, 1: 23, 2: 21}})
# Name is id_vars and Course is value_vars
melted = pd.melt(df, id_vars =['Something'], value_vars =['Course']) <--#ERROR HERE
print(melted)
That id_vars plays a role as identifier variables. It should be a column name that exists in DataFrame.
Fix code:
import pandas as pd
df = pd.DataFrame({'Name': {0: 'John', 1: 'Bob', 2: 'Shiela'},
'Course': {0: 'Masters', 1: 'Graduate', 2: 'Graduate'},
'Age': {0: 27, 1: 23, 2: 21}})
# Name is id_vars and Course is value_vars
melted = pd.melt(df, id_vars =['Name'], value_vars =['Course'])
print(melted)
Add a possible fix
Please authorize to post fix