首页 > 解决方案 > Pandas 将 csv 列从 dict 解析为表

问题描述

我的 csv 文件:

FILE_INFO,                                                                                                                                        CATEGORY,    AREA,              BOX,                     NAME
"{'id': 1, 'width': 4032, 'height': 3024, 'file_name': 'pic1.jpeg', 'license': 0, 'flickr_url': '', 'coco_url': '', 'date_captured': 0}",PRODUCT,2247.8981,"[2283.54, 934.13, 27.37, 82.13]","{'subcategory': 'BOTTLE', 'occluded': False}"
"{'id': 2, 'width': 4032, 'height': 3024, 'file_name': 'pic2.jpeg', 'license': 0, 'flickr_url': '', 'coco_url': '', 'date_captured': 0}",PRODUCT,2450.7795,"[2239.91, 1284.21, 33.15, 73.93]","{'subcategory': 'BOTTLE', 'occluded': False}"
"{'id': 3, 'width': 4032, 'height': 3024, 'file_name': 'pic3.jpeg', 'license': 0, 'flickr_url': '', 'coco_url': '', 'date_captured': 0}",INDUSTRIAL litter,2548.956,"[2316.07, 301.5, 68.3, 37.32]","{'subcategory': 'BOTTLE', 'occluded': False}"
"{'id': 4, 'width': 4032, 'height': 3024, 'file_name': 'pic4.jpeg', 'license': 0, 'flickr_url': '', 'coco_url': '', 'date_captured': 0}",INDUSTRIAL litter,1465.0172,"[3394.37, 1083.97, 26.99, 54.28]","{'subcategory': 'PAPER', 'occluded': False}"

如何解析FILE_INFO列并仅获取file_name表而无需任何其他信息。与NAME列相同,仅从中获取子类别。其他桌子很好。

标签: pythonpandascsv

解决方案


您可以遍历 for 循环中的值并使用 JSON 提取您需要的数据。

所以在 for 循环中你会做这样的事情:

import json

for row in rows:
    json.loads(row.replace("\'", "\""))['file_name']

推荐阅读