I have wrote lines of code to convert items of a pandas dataframe column to a dict with appropriate values. The code looks like this:
states = df.STATE.unique()
states.sort()
states_values = [i for i in range(0,len(states))]
state_dict = {states[i]: states_values[i] for i in range(len(states))}
But I have many columns to convert so I tried using a function and wrote a function like this
def make_dict(dataframe,column_name):
keys = dataframe.column_name.unique()
keys.sort()
values = [i for i in range(0,len(keys))]
dict = {keys[i]: values[i] for i in range(len(keys))}
return dict
But When I tried
city_dict = make_dict(df,'CITY')
Where CITY is my column name, it throws an error
AttributeError: 'DataFrame' object has no attribute 'column_name'
I have tried setting a variable and did it but same error.
tried with df['CITY']
over df.CITY
but still doesn't work out.
Please let me know what am I missing.
CodePudding user response:
You can use getattr()
to fetch arbitrary attributes.
keys = getattr(dataframe, column_name).unique()