How to use groupby to concatenate strings in python pandas?
I currently have dataframe at the top. Is there a way to use a groupby function to get another dataframe to group the data and concatenate the words into the format like further below using python pandas?
Thanks
[
You can apply join
on your column after groupby
:
df.groupby('index')['words'].apply(','.join)
Example:
In [326]:
df = pd.DataFrame({'id':['a','a','b','c','c'], 'words':['asd','rtr','s','rrtttt','dsfd']})
df
Out[326]:
id words
0 a asd
1 a rtr
2 b s
3 c rrtttt
4 c dsfd
In [327]:
df.groupby('id')['words'].apply(','.join)
Out[327]:
id
a asd,rtr
b s
c rrtttt,dsfd
Name: words, dtype: object
If you want to save even more ink, you don't need to use .apply()
since .agg()
can take a function to apply to each group:
df.groupby('id')['words'].agg(','.join)
OR
# this way you can add multiple columns and different aggregates as needed.
df.groupby('id').agg({'words': ','.join})