AnswerBun.com

Как применить apply() на N столбцов для конкатинации в строку?

Stack Overflow на русском Asked on December 20, 2020

Есть DataFrame вида:

     c1    c2    c3    ...    cN
0    1     1     0     ...    0
1    0     1     1     ...    0
2    0     0     1     ...    0
3    1     1     0     ...    1

Необходимо получить новый столбец, который являлся бы строкой вида c1+c2+c3...+cN.

Я делаю

df.loc[:, 'c1':'cN'].apply(lambda x: ???, axis=1)

Но не понимаю, как написать лямбду в этом случае.

One Answer

попробуйте так:

In [102]: df
Out[102]:
   c1  c2  c3  c4
0   1   1   0   0
1   0   1   1   0
2   0   0   1   0
3   1   1   0   1

In [103]: res = df.loc[:, "c1":"c4"].astype(str).T.apply(lambda x: x.str.cat())

In [104]: res
Out[104]:
0    1100
1    0110
2    0010
3    1101
dtype: object

или так (по совету @strawdog):

res = df.loc[:, "c1":"c4"].astype("str").apply(lambda x: x.str.cat(), axis=1)

Correct answer by MaxU on December 20, 2020

Add your own answers!

Related Questions

Как работать с postgresql в docker?

2  Asked on September 3, 2020 by jekson

     

Как сделать обратный loop | Laravel

1  Asked on September 3, 2020 by sire-impactus

     

Не приходит file_id

1  Asked on September 2, 2020 by clear-360

     

Windows 10 Биос Приватность

0  Asked on September 2, 2020 by setn4me

 

Проблема с дискорд ботом

0  Asked on August 27, 2020 by jaboid

     

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP