通过eval
,Series.apply()
, Series.map
来实现。
df = pd.DataFrame(['{"a":1,"b":2}']) # 得到一个一行一列的dataframe,值为字符串
df['a'] = df[0].apply(eval).map(lambda e:e["a"]) # 通过eval()将这一列的内容从字符串转换为字典,然后通过map返回字典中key为‘a’对应的元素值,存放到df的列‘a’中
df['b'] = df[0].apply(eval).map(lambda e:e["b"]) # 同上,对'b'操作
结果:
当然,如果字符串的内容不符合eval处理的标准,那么可以想别的办法,总之道理是类似的。