Преобразование кадра данных и объединение строк - PullRequest
0 голосов
/ 30 января 2019

У меня есть pandas dataframe, который выглядит следующим образом:

index, a, b
0, i, this
1, belong, is 
2, here, right
0, only, one
0, two, another
1, items, example

И я пытаюсь получить выходные данные, чтобы работающие индексы были сложены и конкатенировали строки:

index, a, b
0, i belong here, this is right
1, only, one
2, two items, another example

Любая идея, как это сделать чистым способом?

1 Ответ

0 голосов
/ 30 января 2019

Вам необходимо создать группы, начиная с 0 в index и кумулятивной суммы, затем агрегировать join:

#if index is column
df = df.groupby(df['index'].eq(0).cumsum(), as_index=False).agg(' '.join)
#if index is not column
#df = df.groupby((df.index == 0).cumsum(), as_index=False).agg(' '.join)
print (df)
               a                b
0  i belong here   this is  right
1           only              one
2      two items  another example

Подробности :

print (df['index'].eq(0).cumsum())
0    1
1    1
2    1
3    2
4    3
5    3
Name: index, dtype: int32

#print ((df.index == 0).cumsum())
#[1 1 1 2 3 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...