gpt4 book ai didi

python-3.x - 如何合并 Pandas 中具有相似数据的行

转载 作者:行者123 更新时间:2023-12-05 02:33:59 26 4
gpt4 key购买 nike

我得到的数据包含以下列:起点、终点、数据。

如果起点和终点行包含相同的数据(向两个方向),我想合并它们并添加额外数据的另一列。

例如开始于:

<表类="s-表"><头>起点端点数据<正文>AB1CD2BA3DC4

收件人:

<表类="s-表"><头>起点端点data_1data_2<正文>AB13CD24

在 pandas 上有快速的方法吗?

谢谢。

最佳答案

首先我们在一个索引上分组,我们在起点、终点对值进行排序以确保我们得到匹配的排列

match_groups = ['_'.join(sorted(t)) for t in zip(df['startpoint'],df['endpoint'])]
df2 = df.groupby(match_groups, as_index = False).agg({'startpoint':'first', 'endpoint':'first', 'data':list})

df2 看起来像这样:

    startpoint    endpoint    data
-- ------------ ---------- ------
0 A B [1, 3]
1 C D [2, 4]

如果我们希望数据在单独的列中,那么我们应用 pd.Series(并将列重命名为所需的标签)

(df2.set_index(['startpoint', 'endpoint'])['data']
.apply(pd.Series).rename(columns = lambda n:f'data_{n+1}')
.reset_index()
)

输出:

    startpoint    endpoint      data_1    data_2
-- ------------ ---------- -------- --------
0 A B 1 3
1 C D 2 4

关于python-3.x - 如何合并 Pandas 中具有相似数据的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70836828/

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