如何从熊猫数据帧创建元组的多个列表

西瓦姆·施里瓦斯塔瓦

我有一个包含三栏的熊猫数据框。我想基于项目列中的值创建一个元组的多个列表

print (df)
   Project  Resource  Time
0       P1         0     4
1       P1         2     4
2       P1         1    10
3       P1         3     3
4       P2         1     3
5       P2         3    10
6       P2         0    11
7       P2         2     3
8       P2         0    12
9       P2         3    11
10      P2         1     3
11      P2         2     3
12      P3         0    12

我想创建的列表元组看起来像这样[[(0,4),(2,4),(1,10),(3,3)],[(1,3),(3,10),( 0,11),(2,3),(0,12),(3,11),(1,3),(2,3)],[(0,12)]]

我用下面的代码

tuples = [tuple(x) for x in data.values]
耶斯列尔

使用DataFrame.groupby具有lambda函数和zip,最后转换输出Serieslist

t  = df.groupby('Project').apply(lambda x: list(zip(x['Resource'], x['Time']))).tolist()
print (t)
[[(0, 4), (2, 4), (1, 10), (3, 3)], 
 [(1, 3), (3, 10), (0, 11), (2, 3), (0, 12), (3, 11), (1, 3), (2, 3)],
 [(0, 12)]]

另一个解决方案:

t  = (df.groupby('Project')['Resource','Time']
        .apply(lambda x: [tuple(y) for y in x.values])
        .tolist())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章