我已创建此数据框:
import pandas as pd
from ast import literal_eval
d = {'order_id': [1], 'email': ["hi@test.com"], 'line_items': ["[{'sku':'testproduct1', 'quantity':'2'},{'sku':'testproduct2','quantity':'2'}]"]}
orders = pd.DataFrame(data=d)
看起来是这样的:
order_id email line_items
1 hi@test.com [{'sku':'testproduct1', 'quantity':'2'},{'sku':'testproduct2','quantity':'2'}]
我希望数据帧如下所示:
order_id email line_items.sku line_items.quantity
1 hi@test.com testproduct1 2
1 hi@test.com testproduct2 2
我使用以下代码将行_项的类型从string更改为dict:
orders.line_items = orders.line_items.apply(literal_eval)
通常我会使用json_normalize
now展平行项目列。但我也想保留身份证,不知道怎么做。我还想避免任何循环
有人能帮我解决这个问题吗
亲切的问候
乔安娜95
如果你的字典真的那么奇怪,那么你可以试试:
要从
orders
中创建d
,您可以尝试:或者你可以试试:
但是:我仍然不清楚情况:)
相关问题 更多 >
编程相关推荐