gpt4 book ai didi

python - 将每隔一行移动到一个新列并将 pandas python 分组

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:10 24 4
gpt4 key购买 nike

我有一个示例数据集,它比我的实际数据集小得多,它实际上是一个文本文件,我想将其作为 pandas 表读取并对其执行某些操作:

import pandas as pd
d = {
'one': ['title1', 'R2G', 'title2', 'K5G', 'title2','R14G', 'title2','R2T','title3', 'K10C', 'title4', 'W7C', 'title4', 'R2G', 'title5', 'K8C']
}
df = pd.DataFrame(d)

示例数据集如下所示:

df

Out[20]:
one
0 title1
1 R2G
2 title2
3 K5G
4 title2
5 R14G
6 title2
7 R2T
8 title3
9 K10C
10 title4
11 W7C
12 title4
13 R2G
14 title5
15 K8C

我添加了第二列,名为“值”:

df.insert(1,'value','')
df

Out[22]:
one value
0 title1
1 R2G
2 title2
3 K5G
4 title2
5 R14G
6 title2
7 R2T
8 title3
9 K10C
10 title4
11 W7C
12 title4
13 R2G
14 title5
15 K8C

我想首先将每隔一行移动到“值”列:

      one    value
0 title1 R2G
1 title2 K5G
2 title2 R14G
3 title2 R2T
4 title3 K10C
5 title4 W7C
6 title4 R2G
7 title5 K8C

然后想要按标题名称进行分组,因为同一标题可能有多个值:

     one     value
0 title1 R2G
1 title2 K5G, R14G, R2T
2 title3 K10C
3 title4 W7C , R2G
4 title5 K8C

如何实现这一目标?

最佳答案

通过使用 iloc 和步骤参数对列进行切片来构造新的 df:

In [185]:
new_df = pd.DataFrame({'one':df['one'].iloc[::2].values, 'value':df['one'].iloc[1::2].values})
new_df

Out[185]:
one value
0 title1 R2G
1 title2 K5G
2 title2 R14G
3 title2 R2T
4 title3 K10C
5 title4 W7C
6 title4 R2G
7 title5 K8C

然后,您可以对“one”进行groupby,并在“value”列上应用lambda,然后加入这些值:

In [188]:
new_df.groupby('one')['value'].apply(','.join).reset_index()

Out[188]:
one value
0 title1 R2G
1 title2 K5G,R14G,R2T
2 title3 K10C
3 title4 W7C,R2G
4 title5 K8C

关于python - 将每隔一行移动到一个新列并将 pandas python 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59637019/

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