как я могу создать кадр данных, содержащий все комбинации столбца? pandas python?

как я могу создать кадр данных, содержащий все комбинации, значение столбца (например, использование) для определенной группы (например, userid) в кадре данных с использованием pandas python?

например: если это кадр данных, который у меня есть,

user-id      serial-number       value     day

1   2   10      1
1   2   20      2
1   2   30      3
1   2   40      4
1   2   50      5
1   2   60      6
1   2   70      7
1   2   80      8
1   2   90      9
1   2   100    10
1   2   200    11
1   2   300    12
1   2   400    13
2   3   11      1
2   3   12      2
2   3   13      3
2   3   14      4
2   3   15      5
2   3   16      6
2   3   17      7
2   3   18      8

Мне нужен результирующий фрейм данных: (комбинации для первого значения в столбце «значение»)

user-id     serial-number       value       value1      day

1   2   10  10    1
1   2   10  20    1
1   2   10  30    1
1   2   10  40    1
1   2   10  50    1
1   2   10  60    1
1   2   10  70    1
1   2   10  80    1
1   2   10  90    1 
1   2   10  100   1 
1   2   10  200   1 
1   2   10  300   1
1   2   10  400   1
.
.
.

2   3   11  11    1
2   3   11  12    1
2   3   11  13    1
2   3   11  14    1
2   3   11  15    1
2   3   11  16    1
2   3   11  17    1
2   3   11  18    1

Аналогично, я хочу сделать это для всех значений в столбце «значение».

Какие-либо предложения?

python,pandas,pandas-groupby,

-1

Ответов: 1


0
subset = pd.DataFrame()

for _, i in test1.groupby(['user-id']):

                vals = i['value']
                val, val1 = zip(*product(vals, vals))
                vals_len = len(vals)

                def elongate(s, k):

                    return pd.concat([s] * k, ignore_index=True)

                res = pd.DataFrame({'user-id': i['user-id'].pipe(elongate, vals_len),
                                    'serial-number': i['serial-number'].pipe(elongate, vals_len),
                                    'value': i['value'].pipe(elongate, vals_len),
                                    'day': i['day'].pipe(elongate, vals_len),
                                    'value': val,
                                    'value1': val1
                                   })


                subtest = subtest.append(res)


print(subtest)

Это работало для меня отлично.

питон, панды, панды-GroupBy,
Похожие вопросы
Яндекс.Метрика