gpt4 book ai didi

python - 为其他列中的每个唯一值查找列中唯一值的计数

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

我有一个包含四列的数据框,track,num_tracks playlist, cluster。我的目标是创建一个新的数据框,该数据框将输出一行,其中包含集群中每个唯一值的轨道、pid 和列及其相应的计数。

这是一个示例数据框:

pid          track          cluster          num_track
0 1 6 4
0 2 1 4
0 3 6 4
0 4 3 4
1 5 10 3
1 6 10 3
1 7 1 4
2 8 9 5
2 9 11 5
2 10 2 5
2 11 2 5
2 12 2 5

所以我想要的输出是:

pid track cluster num_track c1 c2 c3 c4 c5 c6 c7 ... c12
0 1 6 4 1 0 1 0 0 2 0 0
0 2 1 4 1 0 1 0 0 2 0 0
0 3 6 4 1 0 1 0 0 2 0 0
0 4 3 4 1 0 1 0 0 2 0 0
1 5 10 3 1 0 0 0 0 0 0 0
1 6 10 3 1 0 0 0 0 0 0 0
1 7 1 3 1 0 0 0 0 0 0 0
2 8 9 5 0 3 0 0 0 0 0 0
2 9 11 5 0 3 0 0 0 0 0 0
2 10 2 5 0 3 0 0 0 0 0 0
2 11 2 5 0 3 0 0 0 0 0 0
2 12 2 5 0 3 0 0 0 0 0 0

我希望我已经正确地提出了我的问题,如果有任何不正确的地方,请告诉我!我还没有足够的代表来设置赏金,但当我有足够的时候可以重新发布。任何帮助将不胜感激!!

最佳答案

你可以使用 crosstabreindex ,然后 concat 回到原来的 df

s=pd.crosstab(df.pid,df.cluster).reindex(df.pid)
s.index=df.index
df=pd.concat([df,s.add_prefix('c')],1)
df
Out[209]:
pid track cluster num_track c1 c2 c3 c6 c9 c10 c11
0 0 1 6 4 1 0 1 2 0 0 0
1 0 2 1 4 1 0 1 2 0 0 0
2 0 3 6 4 1 0 1 2 0 0 0
3 0 4 3 4 1 0 1 2 0 0 0
4 1 5 10 3 1 0 0 0 0 2 0
5 1 6 10 3 1 0 0 0 0 2 0
6 1 7 1 4 1 0 0 0 0 2 0
7 2 8 9 5 0 3 0 0 1 0 1
8 2 9 11 5 0 3 0 0 1 0 1
9 2 10 2 5 0 3 0 0 1 0 1
10 2 11 2 5 0 3 0 0 1 0 1
11 2 12 2 5 0 3 0 0 1 0 1

关于python - 为其他列中的每个唯一值查找列中唯一值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54989027/

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