我有一个带有semi structured data
的数据集,我需要在其他列的json
列内转换content
。
数据:
customer flow session timestamp content
1 C1000 F1000 S2000 2019-12-16 13:59:58+00:00 {'name': ''}
2 C1000 F1000 S2000 2019-12-16 13:59:59+00:00 {'name': 'joao'}
4 C1000 F1000 S2000 2019-12-16 13:59:59+00:00 {'cpf': '733.600.420-26'}
所需的结果看起来像这样:
+--------+-----+-------+-------------------+-------------------+-----+--------------+------------------+
|customer|flow |session|first_answer_dt |last_answer_dt |name |cpf |delivery_confirmed|
+--------+-----+-------+-------------------+-------------------+-----+--------------+------------------+
|C1000 |F1000|S1000 |2019-12-16T13:59:58|2019-12-16T14:00:01|maria|305.584.960-40|sim |
|C1000 |F1000|S2000 |2019-12-16T13:59:59|2019-12-16T14:00:00|joao |733.600.420-26|não |
+--------+-----+-------+-------------------+-------------------+-----+--------------+------------------+
我正在互联网上搜索,但是很难找到这种情况的解决方案。
IIUC,您可以尝试.join
和pd.Series
#use eval if your json is a string.
df1 = df.join(df['content'].map(eval).apply(pd.Series)).drop('content',axis=1)
print(df1)
customer flow session timestamp name cpf
0 C1000 F1000 S2000 2019-12-16 13:59:58+00:00 NaN
1 C1000 F1000 S2000 2019-12-16 13:59:59+00:00 joao NaN
2 C1000 F1000 S2000 2019-12-16 13:59:59+00:00 NaN 733.600.420-26