Pandas 系列正在为另一个系列分配索引而不是值
Pandas series is assigning index rather than value to another series
我正在寻找类似的解决方案,但找不到,而且 运行 没时间了,所以我不得不写下这个问题,请帮助我。
首先,我使用 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')
试试这个:
new_df = df.groupby('id')['masked_id'].agg(list).agg(pd.Series)
new_df.columns = 'masked_id_' + (new_df.columns+1).astype(str)
new_df = new_df.reset_index()
输出:
>>> new_df
id masked_id_1 masked_id_2 masked_id_3
0 23234 XXXX4 XXXX4 XXXX4
我正在寻找类似的解决方案,但找不到,而且 运行 没时间了,所以我不得不写下这个问题,请帮助我。
首先,我使用 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')
试试这个:
new_df = df.groupby('id')['masked_id'].agg(list).agg(pd.Series)
new_df.columns = 'masked_id_' + (new_df.columns+1).astype(str)
new_df = new_df.reset_index()
输出:
>>> new_df
id masked_id_1 masked_id_2 masked_id_3
0 23234 XXXX4 XXXX4 XXXX4