Pandas dataframe Объединяет группы строк текста по идентификатору - PullRequest
0 голосов
/ 30 января 2019

У меня есть следующий фрейм данных:

ID    Date          Text  
1     01/01/2019    abcd
1     01/01/2019    pqrs
2     01/02/2019    abcd
2     01/02/2019    xyze

Я хочу объединить Text на ID в Python, используя предложение group by.

Я хочу объединить столбцы 'Text', сгруппировав ID.

ID    Date        Text
1     01/01/2019  abcdpqrs
2     01/02/2019  abcdxyze

Я хочу сделать это на Python.

Я попытался выполнить следующие фрагменты кода, но это не сработало:

  1. groups = groupby(dataset_new, key=ID(1))

  2. dataset_new.group_by{row['Reference']}.values.each do |group| puts [group.first['Reference'], group.map{|r| r['Text']} * ' '] * ' | ' end

Я также пытался объединить текст в Excel с помощью формул, но он также не дает требуемых результатов.

1 Ответ

0 голосов
/ 08 февраля 2019

Попробуйте groupby и sum.Судя по вашему сообщению об ошибке и выводу df.info(), похоже, что в столбце Text есть смешанные dtypes и NaN.Я предлагаю преобразовать NaN в пустую строку, используя fillna(''), а затем преобразовать все элементы в столбце в строку, используя astype(str).

df = pd.DataFrame({'ID': [1,1,2,2], 
                   'Date': ['01/01/2019', '01/01/2019', '01/02/2019', '01/02/2019'],
                   'Text': ['abcd', 'pqrs', 'abcd', 'xyze']})

df['Text'] = df['Text'].fillna('').astype(str)
df_grouped = df.groupby(['ID', 'Date'])['Text'].sum()
print(df_grouped)

Это должно вернуть

ID  Date      
1   01/01/2019    abcdpqrs
2   01/02/2019    abcdxyze
...