【发布时间】:2022-01-01 20:21:18
【问题描述】:
我正在寻找类似的解决方案,但我找不到它并且时间不多了,所以我必须写下这个问题,请帮助我。
首先,我使用 pandas 来获取输出,所以请帮助我。
所以我想要实现的是我想将一组特定的 groupby 分配给另一行
因此,例如,我在 groupby 中有一个组,我想要在同一行的另一列中,所以我将此值分配给另一列,因为它是按行写入的,所以它将写入不同列的同一行(我怀疑它也是,但在克服当前的障碍后会看到)但我没有获取组的值,而是在其他列示例中获取组的行号如下:
group_count=df['id'].value_counts()
group_count=group_count.to_dict()
for i in group_count:
for j in range(group_count[i]):
df['masked_id_'+str(j+1)].iloc[j:j+1]=gk.get_group(i)['masked_id'].iloc[j:j+1]
我想要实现的只是将重复 id 的 masked_id 转移到不同的列中,例如我有 3 个相似的 id 说:
id masked_id
1 23234 XXXX4
2 23234 XXXX4
3 23234 XXXX4
把它变成下面的样子:
id masked_id_1 masked_id_2 masked_id_3
1 23234 XXXX4 XXXX4 XXXX4
但我得到的是:
id masked_id_1 masked_id_2 masked_id_3
23234 1 2 3
寻求任何指导以向类似方向传播,非常感谢您抽出时间。
更新(关于gk的信息):
gk = df.groupby(by='id')
【问题讨论】:
-
试试:
df.groupby('id')['masked_id'].apply(list).apply(pd.Series) -
其实我已经做过了,gk就是那部分我忘了说谢谢@Corralien提醒我
标签: python pandas dataframe pandas-groupby