-1
我有一个DF,看起来像这样熊猫:解压缩与字典值的列表中的列到多列
COL1 COL2 COL3
0 ABC N [{u'PERF_PCT': 0.2,u'PERF_DATE': 12},{u'PERF_PCT': 0.3,u'PERF_DATE': 13}]
1 XYZ N [{u'PERF_PCT': 0.6,u'PERF_DATE': 12},{u'PERF_PCT': 0.2,u'PERF_DATE': 13},{u'PERF_PCT': 0.7,u'PERF_DATE': 14}]
我需要解压第3列,使得数据帧有额外的行列表中的每个字典在COL3和字典中的每个键的附加列。字典中的键值对是固定的。
COL1 COL2 PERF_PCT PERF_DATE
0 ABC N 0.2 12
1 ABC N 0.3 13
2 XYZ N 0.6 12
3 XYZ N 0.2 13
4 XYZ N 0.7 14
我已经能够使用for循环完成相同的操作,但我需要一些非常高效的操作。由此产生的df可以有大约170k条记录,目前使用for循环大约需要20多秒,这是不可接受的。我希望使用熊猫具体适用或其他功能可以使这个更快,但一直没有能够这样做。如果有一个非常快的方法来做到这一点,我会非常感激。谢谢。
嗨。谢谢您的帮助。这是否依赖于df中的列数。 Iam得到ValueError:长度不匹配:期望轴有2个元素,新值有5个元素。我有更多的列不只是COL1和COL2。并且在词典中有5个键值对 – Fizi
Nevermind!它效果很好。唯一会引起争议的是列级别* *是否可以深入了解你正在做的事情。它真的很酷,我很想了解它 – Fizi
@Fizi我把它称为unlistify或unnest问题,你可以在这里查看,https://stackoverflow.com/questions/45885143/explode-lists-with-different-lengths-in-熊猫/ 45885337#comment78730894_45885337 – Wen