gpt4 book ai didi

python - pandas:按列分组并将编号的重复列添加到新数据框

转载 作者:行者123 更新时间:2023-12-01 02:29:39 28 4
gpt4 key购买 nike

我有一个像这样的数据框

Page KeyWord date
1 hello mon
1 good mon
2 holy tues
2 brown wed
2 crazy wed

需要输出数据帧

Page KeyWord_1 KeyWord_2 KeyWord_3 date_1 date_2 date_3
1 hello good NULL mon mon NULL
2 holy brown crazy tues wed wed

基本上,数据框应该添加足够的列来满足最大数量的重复页码,因此在上面的情况下,我们看到 Page 有 3 个重复项(第 2 页有 3 个实例),因此它应该添加那么多页码除了 groupby 列之外的重复列。

只是为了展示另一个例子

输入:

Page KeyWord date
1 hello mon
1 good mon
2 holy tues
2 brown wed

输出:

Page KeyWord_1 KeyWord_2 date_1 date_2 
1 hello good mon mon
2 holy brown tues wed

最佳答案

一种方式,进入多重索引:

In [11]: res = df.pivot_table(index="Page", columns=df.groupby("Page").cumcount(), aggfunc="first")

In [12]: res
Out[12]:
KeyWord date
0 1 2 0 1 2
Page
1 hello good None mon mon None
2 holy brown crazy tues wed wed

如果您确实需要,您可以展平列:

# python 3
In [13]: [f"{title}_{str(i+1)}" for title, i in res.columns]
Out[13]: ['KeyWord_1', 'KeyWord_2', 'KeyWord_3', 'date_1', 'date_2', 'date_3']

# python 2
In [14]: [title + "_" + str(i+1) for title, i in res.columns]
Out[14]: ['KeyWord_1', 'KeyWord_2', 'KeyWord_3', 'date_1', 'date_2', 'date_3']

In [15]: res.columns = [title + "_" + str(i+1) for title, i in res.columns]

In [16]: res
Out[16]:
KeyWord_1 KeyWord_2 KeyWord_3 date_1 date_2 date_3
Page
1 hello good None mon mon None
2 holy brown crazy tues wed wed

关于python - pandas:按列分组并将编号的重复列添加到新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978642/

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