Aggregating, but keeping data by concatenating the data from rows to string.
#### Code Sample

```
data = {'id': [101, 203, 645, 101, 392, 546, 203],
        'items': ['glass', 'table', 'laptop', 'charger', 'mouse', 'phone', 'screen']}

df = pd.DataFrame(data)


id  | items
--  | --
101 | glass
203 | table
645 | laptop
101 | charger
392 | mouse
546 | phone
203 | screen



# Method to aggregate and keep the values of the aggregated rows.
df = df.groupby('id').items.apply(list).reset_index()

df['items_string'] = df['items'].apply(lambda x: ' '.join(map(str, x)))
```
#### Problem description

I was wondering if its possible to make this a standard method, by keeping values of columns in string format while aggregating the data, so no data is lost. 

For exampe: ```df.grouby('id').keep_values('items')```

I know this is possible with the code I provided above, but there should be more concise way right?
I dont have enough knowledge to provide the code for the solution, but I hope my idea is understood.

#### Expected Output
```
id  | items_string
--  | --
101 | glass charger
203 | table screen
392 | mouse
546 | phone
645 | laptop

```

