Я пытаюсь сгенерировать уникальное групповое значение для каждого наблюдения, состоящего из содержимого столбца, объединенного вместе, сохраняя при этом все строки в целости.
У меня есть наблюдения, которые можно сгруппировать по определенному столбцу (столбец A
ниже). Я хочу создать уникальное значение для каждой группы, состоящее из содержимого каждой строки этой группы, но при этом не затрагивая строки.
Я пробовал предоставленные решения здесь и здесь , но эти решения сводят результаты, оставляя по одной строке на группу, тогда как я хочу сохранить все строки.
import pandas as pd
d = {'A': [1, 2, 3, 3, 4, 5, 5, 6],
'B': [345, 366, 299, 455, 879, 321, 957, 543]}
df = pd.DataFrame(d)
print(df)
A B
0 1 345
1 2 366
2 3 299
3 3 455
4 4 879
5 5 321
6 5 957
7 5 689
8 6 543
df['B'] = df['B'].astype(str)
df['B_concat'] = df.groupby(['A'])['B'].apply('/'.join)
print(df)
A B B_concat
0 1 345 NaN
1 2 366 345
2 3 299 366
3 3 455 299/455
4 4 879 879
5 5 321 321/957/689
6 5 957 543
7 5 689 NaN
8 6 543 NaN
Единицы в одной группе должны иметь одинаковое значение B_concat
.
A B B_concat
0 1 345 345
1 2 366 366
2 3 299 299/455
3 3 455 299/455
4 4 879 879
5 5 321 321/957/689
6 5 957 321/957/689
7 5 689 321/957/689
8 6 543 543