Skip to content

Instantly share code, notes, and snippets.

@ariffyasri
Created July 25, 2018 03:53
Show Gist options
  • Save ariffyasri/b1617bc063e6c2aa9245d1acb1ea6a86 to your computer and use it in GitHub Desktop.
Save ariffyasri/b1617bc063e6c2aa9245d1acb1ea6a86 to your computer and use it in GitHub Desktop.
reverse pandas dummies
def remove_column_name(value):
return value[value.rfind('_')+1:]
def check_categorical_column(columns):
dict_column_name = {}
for column in columns:
name = column[:column.rfind('_')]
dict_column_name.setdefault(name,[]).append(column)
return dict_column_name
def reverse_dummies(df):
df_temp = df.copy()
dict_column_name = check_categorical_column(df_temp)
for key, value in dict_column_name.items():
if len(value) > 1:
dummies = df_temp[value]
df_temp[key] = pd.Series(dummies.columns[np.where(dummies != 0)[1]])
df_temp[key] = df_temp[key].apply(remove_column_name)
df_temp.drop(value, axis=1, inplace=True)
return df_temp
reverse_dummies(df)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment