Присоединяйтесь pandas серии строк - PullRequest
3 голосов
/ 01 апреля 2020

Предположим, у меня есть следующий фрейм данных:

df = pd.DataFrame({'col1': ['abc', 'defg', 'hwer', 'qwerty'], 'col2': ['123', '456', '890', '90'],
                  'col3': ['knlk', 'knl', 'op', 'tui']})

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

df['col4'] = df['col1'] + '_' + df['col2'] + '_' + df['col3']

Но я должен повторять '_', есть ли способ сделать что-то вроде:

df['col4'] = '_'.join([df['col1'], df['col2'], df['col3']])

Ответы [ 3 ]

2 голосов
/ 01 апреля 2020
df['new'] = df[['col2', 'col3']].apply(lambda x: '_'.join(x), axis=1)
2 голосов
/ 01 апреля 2020

вы можете использовать pandas .DataFrame.stack :

df['col4'] = df.stack().groupby(level=0).apply('_'.join)
df

вывод:

enter image description here

1 голос
/ 01 апреля 2020

Есть Series.str.cat:

df["col4"] = df[df.columns[0]].str.cat(df[df.columns[1:]], sep="_")
df
#      col1 col2  col3           col4
# 0     abc  123  knlk   abc_123_knlk
# 1    defg  456   knl   defg_456_knl
# 2    hwer  890    op    hwer_890_op
# 3  qwerty   90   tui  qwerty_90_tui
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...