我有一个列表的数据框架,看起来与下面的列表相似(图a).有一个键列,后跟n列,其中包含列表.我期望的结果示例如图B所示.
我try 了一些iteritems()方法,但这些数据帧可能有几十万到数百万行的长度,这使得速度非常慢.因此,我试图避免使用这种解决方案.
我想使用类似于this SO post中的列表理解的东西,但我还无法将其用于Pandas .
# example data
data = {'key': ['1_1', '1_2', '1_3'],
'valueA': [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18]],
'valueB': [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18]],
'valueN': [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18]]}
dataSet = pd.DataFrame(data)
图A
图B
编辑:我真的很感谢迄今为止我得到的所有答案!我目前正在对全尺寸数据集上的每个数据集进行判断和计时,这样我就可以找出在这种情况下哪一个最有效.我将很快更新我的结果!
编辑2:我在几个较大的数据集上测试了这里提供的主要解决方案,其平均时间如下.
# Lambda/Apply a nested list comprehension
shakiba.mrd: 1.12 s
# Sum columns
jfaccioni: 2.21 s
# Nested list comprehension with iterrows
mozway: 0.95 s
# Adding column lists together
politinsa: 3.50 s
再次感谢大家的贡献!