Объединить столбцы в панде Dataframe - PullRequest
0 голосов
/ 02 марта 2019

У меня есть фрейм данных с тремя столбцами

Col1    Col2    Col3  Col4  Col 5
---------------------------------
Apple   None    192    abc   None
Banana  Banana  89     None  bcd
None    Cake    892    aaa   aaa

Я хочу объединить два столбца, то есть Col1 и Col2 и col1 и col5. Если один столбец отсутствует, а другой имеет значение, используйте значение, если оба имеют значениязатем используйте это значение.
Возможно ли объединить столбцы следующим образом.

Col1    Col3     Col4
----------------------
Apple   192      abc
Banana  89       bcd
Cake    892      aaa

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Создайте ваше отображение dict, do groupby с first

d={'Col1':'Col1','Col2':'Col1','Col3':'Col3','Col4':'Col4','Col5':'Col4'}
Yourdf=df.mask(df=='None').groupby(d,axis=1).first()
Out[88]: 
     Col1  Col3 Col4
0   Apple   192  abc
1  Banana    89  bcd
2    Cake   892  aaa
0 голосов
/ 02 марта 2019

Использование (если None - строка, сначала заменить на np.nan: df=df.replace('None',np.nan)):

df_new=df.ffill().bfill()[['Col1','Col3']]
print(df_new)

     Col1  Col3
0   Apple   192
1  Banana    89
2  Banana   892

В зависимости от обновления:

df.bfill(axis=1)[['Col1','Col3','Col4']]

     Col1 Col3 Col4
0   Apple  192  abc
1  Banana   89  bcd
2    Cake  892  aaa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...