Объединить столбцы строк, где имена столбцов находятся в списке - PullRequest
0 голосов
/ 05 июля 2018

Я знаю, как объединить два столбца строк.

df['a'] + ' ' + df['b']

но если у меня длинный список имен столбцов, я не могу все это выписать.

Это явно неверно, но я думал что-то вроде ...

' '.join([df[col] for col in columns])

Ответы [ 4 ]

0 голосов
/ 05 июля 2018

Вы можете написать простую функцию суммирования самостоятельно (встроенная sum работает только с числами):

def concat(df, cols):
    out = df[cols[0]]
    for i in range(1, len(cols)):
        out = out + df[cols[i]]  # Note: `+=` would change the first column.
    return out
0 голосов
/ 05 июля 2018

Вы можете просто использовать DataFrame.sum, указав правильную ось, и он объединит строки.

Пример данных

import pandas as pd
df = pd.DataFrame({'a': ['hello', 'goodbye'], '34234': ['goodbye', 'seven'], 
                   'column2': ['foo-', 'bird'], 'column xx': ['bar', 'cat']})
#         a    34234 column2 column xx
#0    hello  goodbye    foo-       bar
#1  goodbye    seven    bird       cat

columns = ['a', 'column2', 'column xx']
(df[columns] + ' ').sum(axis=1).str.strip()  # strip removes the trailing space

Выходы:

0      hello foo- bar
1    goodbye bird cat
0 голосов
/ 05 июля 2018

df.columns даст все столбцы. Сделать конкатенацию.

 ' '.join(df.columns)
0 голосов
/ 05 июля 2018

У меня нет опыта работы с пандами, но не могли бы вы:

' '.join(df[i] for i in columns.keys())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...