Reading CSV File:
ast.literal_eval is needed or pd.read_csv will read dictionary as string
import ast
df = pd.read_csv('/data_with_dict.csv', converters={'dict_col': ast.literal_eval})
Processing the dataframe that contains a dictionary:
# Example dataframe
df = pd.DataFrame({'unk_col' : ['foo','bar'],
'dict_col': [{'Country':'USA', 'Gender':'Male'},
{'Country':'China', 'Gender':'Female'}]})
# Convert dictionary to columns
df = pd.concat([df.drop(columns=['dict_col']), df['dict_col'].apply(pd.Series)], axis=1)
# Write to file
df.to_csv(''/data_no_dict.csv'', index=False)
print(df)
Output:
unk_col Country Gender
0 foo USA Male
1 bar China Female