pandas groupby и конвертировать в список json
у меня есть фрейм данных pandas, как показано ниже
idx, f1, f2, f3
1, a, a, b
1, b, a , c
1, a, b, c
.
.
.
86
87 e, e , e
мне нужно преобразовать другие столбцы в список словарей на основе столбца idx. Итак, конечный результат должен быть:
idx, features
1 , [{f1:a, f2:a, f3:b}, {f1:b, f2:a, f3:c}, {f1:a, f2:b, f3:c}]
.
.
.
87, [{f1: e, f2:e, f3:e}]
можно ли сделать что-то подобное с помощью groupby в панд?
1 ответов
можно использовать groupby
by index
а то apply
to_json
:
print df
f1 f2 f3
idx
1 a a b
1 b a c
1 a b c
87 e e e
print df.groupby(level=0).apply(lambda x: x.to_json(orient='records'))
1 [{"f1":"a","f2":"a","f3":"b"},{"f1":"b","f2":"...
87 [{"f1":"e","f2":"e","f3":"e"}]
dtype: object
или если колонки idx
не index
:
print df
idx f1 f2 f3
0 1 a a b
1 1 b a c
2 1 a b c
3 87 e e e
print df.groupby('idx').apply(lambda x: x.to_json(orient='records'))
idx
1 [{"idx":1,"f1":"a","f2":"a","f3":"b"},{"idx":1...
87 [{"idx":87,"f1":"e","f2":"e","f3":"e"}]
dtype: object