Quiero fusionar varias cadenas en un marco de datos basado en un grupo en Pandas.
Este es mi código hasta ahora:
import pandas as pd
from io import StringIO
data = StringIO("""
"name1","hej","2014-11-01"
"name1","du","2014-11-02"
"name1","aj","2014-12-01"
"name1","oj","2014-12-02"
"name2","fin","2014-11-01"
"name2","katt","2014-11-02"
"name2","mycket","2014-12-01"
"name2","lite","2014-12-01"
""")
# load string as stream into dataframe
df = pd.read_csv(data,header=0, names=["name","text","date"],parse_dates=[2])
# add column with month
df["month"] = df["date"].apply(lambda x: x.month)
Quiero que el resultado final se vea así:
No entiendo cómo puedo usar groupby y aplicar algún tipo de concatenación de las cadenas en la columna "texto". ¡Cualquier ayuda apreciada!
fuente
pandas < 1.0
,.drop_duplicates()
ignora el índice, que puede dar resultados inesperados. Puede evitar esto usando en.agg(lambda x: ','.join(x))
lugar de.transform().drop_duplicates()
.drop_duplicates()
podría no funcionar si no incluye el parámetrodrop_duplicates(inplace=True)
o simplemente reescribe la línea de código comodf = df[['name','text','month']].drop_duplicates()