[ 1 ] df Station ID Pollutants 8809 { "a" : "46" , "b" : "3" , "c" : "12" } 8810 { "a" : "36" , "b" : "5" , "c" : "8" } 8811 { "b" : "2" , "c" : "7" } 8812 { "c" : "11" } 8813 { "a" : "82" , "c" : "15" } 1. step 1: convert the Pollutants co
Station ID Pollutants
8809 {"a": "46", "b": "3", "c": "12"}
8810 {"a": "36", "b": "5", "c": "8"}
8811 {"b": "2", "c": "7"}
8812 {"c": "11"}
8813 {"a": "82", "c": "15"}
1. step 1: convert the Pollutants column to Pandas dataframe series
df_pol_ps = data_df['Pollutants'].apply(pd.Series)df_pol_ps:
a b c
0 46 3 12
1 36 5 8
2 NaN 2 7
3 NaN NaN 11
4 82 NaN 15
step 2: concat columns a, b, c and drop/remove the Pollutants
df_final = pd.concat([df, df_pol_ps], axis = 1).drop('Pollutants', axis = 1)df_final:
StationID a b c
0 8809 46 3 12
1 8810 36 5 8
2 8811 NaN 2 7
3 8812 NaN NaN 11
4 8813 82 NaN 15
Method 2:一步搞定
df_final = pd.concat([df, df['Pollutants'].apply(pd.Series)], axis = 1).drop('Pollutants', axis = 1)df_final:
StationID a b c
0 8809 46 3 12
1 8810 36 5 8
2 8811 NaN 2 7
3 8812 NaN NaN 11
4 8813 82 NaN 15