【发布时间】:2019-09-29 04:22:41
【问题描述】:
我有一个数据框,其中包含一个名为操作的列和一个字典列表。格式为 {source:int, action:string},我需要将其解析为每个新列,但每个操作单元格中的记录数是可变的。
数据如下所示:
|Id |action |
|1 |[{"E": 4, "action": "views"}, {"A": 58, "action": "views"}]|
|2 |[{"A": 74, "action": "clicks"}] |
我希望它看起来像这样:
|Id|Source|Value|Action|
|1 |E |4 |views |
|1 |A |58 |views |
|2 |A |74 |clicks|
action 列中的字典数量最多可达 10 个
我已经尝试了一些类似pandas DataFrame: normalize one JSON column and merge with other columns的解决方案
但它告诉我第一个解决方案没有正确调用 DataFrame,并且 str 没有第二个解决方案的属性值。除此之外,它也不是我需要的解决方案,因为我需要重命名列源并将 A/E/etc 值放入其中。
【问题讨论】:
-
为什么你首先有一个带有字典的df?你能控制那一步吗?这个问题在上游得到了更好的解决
-
我无法控制它,数据是以 csv 格式提供的,其中包含类似的列。
-
我会使用
csv模块并尝试在创建数据帧 tbh 之前使用它重新调整数据