преобразовать фрейм данных, объединяя значения, связанные с уникальным идентификатором - PullRequest
0 голосов
/ 13 сентября 2018

Во-первых, я прошу прощения за ужасное название этого вопроса.

Моя проблема в том, что я не могу преобразовать этот фрейм данных:

enter image description here

в этот фрейм данных:

enter image description here

Я много чего пробовал:
стек, групповые, сводные, самостоятельные соединения (слияние), широкие -> длинные и т. д. Я застрял.

Я чувствую, что это не должно быть так сложно - я должен что-то упустить. Любой совет будет принята с благодарностью.

df = [    {'name' : 'Andy', 'col1': 's'},
          {'name' : 'Andy', 'col1':   't'},
          {'name' : 'Andy', 'col1':  'u'},
          {'name' : 'Andy', 'col1':  'v'},
          {'name' : 'Bob', 'col1':  'a'},
          {'name' : 'Bob', 'col1':  'b'},
          {'name' : 'Carl', 'col1':  'howdy'},
          ]
df = pd.DataFrame(df)
df = df[['name', 'col1']]
df

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Просто используя sum

(df.col1+' ').groupby(df.name).sum().str[:-1]
Out[259]: 
name
Andy    s t u v
Bob         a b
Carl      howdy
Name: col1, dtype: object
0 голосов
/ 13 сентября 2018

Использование groupby

print(df)

    name    col1
0   Andy    s
1   Andy    t
2   Andy    u
3   Andy    v
4   Bob     a
5   Bob     b
6   Carl    howdy

df.groupby('name')['col1'].apply(' '.join).reset_index()

# Output:
    name    col1
0   Andy    s t u v
1   Bob     a b
2   Carl    howdy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...