gpt4 book ai didi

python - 如何使用 pandas 行形成新列

转载 作者:行者123 更新时间:2023-12-01 01:57:35 24 4
gpt4 key购买 nike

我有以下内容:

pa = pd.DataFrame({'a':np.array([[1.,4.],[2.],[3.,4.,5.]]), 
'b':np.array([[2.,5.],[3., 6.],[4.,5.,6.]])})

这将产生:

    a               b
0 [1.0, 4.0] [2.0, 5.0]
1 [2.0, 3.3] [3.0, 6.0]
2 [3.0, 4.0, 5.0] [4.0, 5.0, 6.0]

我尝试了各种技术将每个数组的项目连接到一个新数组中。

以这种方式:

    a               b               c
0 [1.0, 4.0] [2.0, 5.0] [1.0, 2.0]
1 [1.0, 4.0] [2.0, 5.0] [4.0, 5.0]
2 [2.0, 3.3] [3.0, 6.0] [2.0, 3.0]
3 [2.0, 3.3] [3.0, 6.0] [3.3, 6.0]
4 [3.0, 4.0, 5.0] [4.0, 5.0, 6.0] [3.0, 4.0]
5 [3.0, 4.0, 5.0] [4.0, 5.0, 6.0] [4.0, 5.0]
6 [3.0, 4.0, 5.0] [4.0, 5.0, 6.0] [5.0, 6.0]

如果还有其他列,我可以将这些项目更新到新创建的列中。但我一直坚持到这个位置。

有人可以帮忙吗?

最佳答案

通过使用 zip 和取消嵌套方法

pa['New']=[list(zip(x,y)) for x, y in zip(pa.a,pa.b)]
s=pa.New.str.len()
df=pd.DataFrame({'a':pa['a'].repeat(s),'b':pa['b'].repeat(s),'New':list(map(list,pa.New.sum()))})
df
New a b
0 [1.0, 2.0] [1.0, 4.0] [2.0, 5.0]
0 [4.0, 5.0] [1.0, 4.0] [2.0, 5.0]
1 [2.0, 3.0] [2.0, 3.3] [3.0, 6.0]
1 [3.3, 6.0] [2.0, 3.3] [3.0, 6.0]
2 [3.0, 4.0] [3.0, 4.0, 5.0] [4.0, 5.0, 6.0]
2 [4.0, 5.0] [3.0, 4.0, 5.0] [4.0, 5.0, 6.0]
2 [5.0, 6.0] [3.0, 4.0, 5.0] [4.0, 5.0, 6.0]

关于python - 如何使用 pandas 行形成新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49988866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com