Python 展平数据帧中的列

Python 展平数据帧中的列,python,pandas,Python,Pandas,我有一个json,如下所示: js = """[{"id": 13, "kits": [{"kit": "KIT1216A", "quantity_parts": 80, "quantity_kit": 1}, {"kit": "KIT1216B", "quantity_parts&

我有一个json,如下所示:

js = """[{"id": 13, "kits": [{"kit": "KIT1216A", "quantity_parts": 80, "quantity_kit": 1},
        {"kit": "KIT1216B", "quantity_parts":680, "quantity_kit": 11}],
        "transaction_date": "2020-11-27T05:02:03.822000Z", "dispatch_date": "2020-11-27T05:02:05.919000Z", "transaction_no"
: 2005, "transporter_name": "TCI", "vehicle_details": "hr55ab3337", "invoice_number": "355733019", "remarks": "0", "sending_location": 11, "owner": 4}]"""
其中
kits
是一个包含多个词典的列表

如何展平我从中创建的数据框,以便工具包的数据包含在行本身中

我只是试着:

data = json.loads(js)
df = pd.DataFrame(data)
输出:

    id  kits    transaction_date    dispatch_date   transaction_no  transporter_name    vehicle_details invoice_number  remarks sending_location    owner
0   13  [{'kit': 'KIT1216A', 'quantity_parts': 80, 'qu...   2020-11-27T05:02:03.822000Z 2020-11-27T05:02:05.919000Z 2005    TCI hr55ab3337  355733019   0   11  4
期望输出:

使用:


如果JSON的嵌套程度更高呢?我应该用嵌套的列重复这个过程吗?@RahulSharma-是的,它应该可以工作,但是使用它是痛苦的。e、 g.使用更多嵌套数据的解决方案是
data = json.loads(js)
cols = ['id','transaction_date','dispatch_date','transaction_no','transporter_name',
        'vehicle_details','invoice_number','remarks','sending_location','owner']
df = pd.json_normalize(data, 'kits', cols)
print (df)
        kit  quantity_parts  quantity_kit  id             transaction_date  \
0  KIT1216A              80             1  13  2020-11-27T05:02:03.822000Z   
1  KIT1216B             680            11  13  2020-11-27T05:02:03.822000Z   

                 dispatch_date transaction_no transporter_name  \
0  2020-11-27T05:02:05.919000Z           2005              TCI   
1  2020-11-27T05:02:05.919000Z           2005              TCI   

  vehicle_details invoice_number remarks sending_location owner  
0      hr55ab3337      355733019       0               11     4  
1      hr55ab3337      355733019       0               11     4