Можно ли отформатировать строку в кадре данных панд? - PullRequest
0 голосов
/ 07 ноября 2018

Я новый пользователь панд, и я хотел бы спросить, возможно ли это сделать?

Вот пример моего фрейма данных. все типы данных обоих атрибутов являются строкой.

id class
A1  X1,41
A1  X1,42
A1  X1,43
A2  X1,41
A2  X1,45 

Я слил фрейм данных, используя групповую обработку, и результаты выглядят так. df = df.groupby(['id']).sum()

id class
A1 X1,41X1,42X1,43
A2 X1,41X1,45

но я бы хотел, чтобы результаты были такими (надеюсь, что данные содержатся в виде списка).

id class
A1 [X1,41], [X1,42], [X1,43]
A2 [X1,41], [X1,45]

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Расширяя ответ @Ethan Koch:

df.groupby('id').apply(lambda x: [[_x] for _x in x['class']])

возвращает серию, а не датафрейм. Чтобы преобразовать обратно в Dataframe:

df2=pd.DataFrame({'id':df.index, 'class':df.values})
0 голосов
/ 07 ноября 2018

Я думаю, что вы ищете это:

df.groupby('id').apply(lambda x: [[_x] for _x in x['class']])

Это означает группировать по столбцу 'id' и для каждого сгруппированного объекта применять данную функцию. В этом случае я предоставляю функцию, которая создает список списков объектов в этом объекте groupby. _x может быть чем угодно, я просто назвал его, чтобы отразить, что он временный и заполнитель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...