Цикл Python для конкатенации строк с несколькими строками - PullRequest
0 голосов
/ 27 июня 2018

Я хочу создать цикл в Python, который объединит несколько строк строк вместе. Я создал таблицу, которую я сейчас назвал «До», а затем таблицу, которую я пытаюсь создать «После». Есть мысли о том, как это сделать? В настоящее время я использую следующий код, чтобы получить только одну строку, но мне нужно иметь возможность зациклить весь фрейм данных:

df.str.cat(sep='')

До:

Text       |    Channel  |  Destination   | Amount  | Total
string1           NaN           NaN           NaN      NaN
string2           DKI           US             34       5   
string3           NaN           NaN           NaN      NaN
string4           DKI           CA             39       20   

После того, как:

Text           |    Channel  |  Destination   | Amount  | Total
string1string2        DKI           US            34       5
string3string4        DKI           CA            39       20   

1 Ответ

0 голосов
/ 27 июня 2018

Создать помощника Series с помощью shift, проверить не-NaN с помощью notna и создать группы с помощью cumsum.

Затем агрегируйте dy dict функций, удаляйте имя индекса и для того же порядка столбцов добавляйте reindex:

a = df['total'].shift().notna().cumsum()
#for oldier pandas versions
#a = df['total'].shift().notnull().cumsum()
d = {'row':'first', 'total':'last', 'Text':''.join}

df = df.groupby(a).agg(d).rename_axis(None).reindex(columns=df.columns)
print (df)
   row            Text  total
0    1  string1string2    3.0
1    3  string3string4    1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...