gpt4 book ai didi

python - 如何在 Pandas 中沿垂直方向部分合并单元格

转载 作者:行者123 更新时间:2023-12-04 07:37:51 41 4
gpt4 key购买 nike

我有以下数据框。


指数
旗帜
数据


0
1
啊啊啊

1
0
bbbb

2
0
cccc

3
0
滴滴

4
1
eeee

5
0


6
1
嘎嘎

7
1
呵呵

8
1
iii


我想得到 垂直合并数据 分隔标志 1 .


指数
旗帜
数据
合并数据


0
1
啊啊啊
aaaabbbbccccdddd

1
0
bbbb
——

2
0
cccc
——

3
0
滴滴
——

4
1
eeee
哎呀

5
0

——

6
1
嘎嘎
嘎嘎

7
1
呵呵
呵呵

8
1
iii
iii


也许,我可以用 来做FOR 循环 .
但是,我相信 Pandas 提供了比上述更聪明的解决方案。
///////////////////////////////////////////////////////////////////
后记01
打扰一下。
我无法得到上述结果。

import numpy as np
import pandas as pd

Array01 = np.array([[0, 1, 'aaaa'],
[1, 0, 'bbbb'],
[2, 0, 'cccc'],
[3, 0, 'dddd'],
[4, 1, 'eeee'],
[5, 0, 'ffff'],
[6, 1, 'gggg'],
[7, 1, 'hhhh'],
[8, 1, 'iiii']])

df = pd.DataFrame(data=Array01,columns=['index', 'Flag', 'Data'])
df.loc[df.Flag==1,'newmerge'] = df.groupby(df.Flag.cumsum())['Data'].sum().values

df
enter image description here

最佳答案

我们只需要cumsum标记获取groupby key

df.loc[df.Flag==1,'newmerge'] = df.groupby(df.Flag.cumsum())['Data'].sum().values
df
Out[47]:
index Flag Data newmerge
0 0 1 aaaa aaaabbbbccccdddd
1 1 0 bbbb NaN
2 2 0 cccc NaN
3 3 0 dddd NaN
4 4 1 eeee eeeeffff
5 5 0 ffff NaN
6 6 1 gggg gggg
7 7 1 hhhh hhhh
8 8 1 iiii iiii

关于python - 如何在 Pandas 中沿垂直方向部分合并单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67643620/

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