Как удалить нулевые значения из каждого столбца в кадре данных и добавить ненулевые значения столбца в 1 строку на основе ключа - PullRequest
0 голосов
/ 13 июня 2019

Я проверяю данные ч / б в 2 разных источниках данных, используя pandas и pandasql.После проверки я сохраняю несоответствия в новом фрейме данных.Проблема заключается в том, что для ключа столбца в каждой строке я не соответствовал столбцу как ненулевым значениям, тогда как другие столбцы были нулевыми.

введите описание изображения здесь Я пытался использовать df.stack (), но не смог многого достичь.

Для данного ключа я хочу, чтобы все несоответствующие столбцы в 1 строкевместо нескольких строк, содержащих несовпадающие столбцы в каждой строке.

Фактическое представление кадра данных находится в изображении.Ниже приведен пример: (Bi, Bj) -> пары (ожидаемых, фактических) значений столбца.

 sample = pd.DataFrame(data = {'A':[10,10,10] , 'B1':['CMBS-Cash','Nan','Nan'],'B2':['CMBS','Nan','Nan'] ,'B3':['Nan','CMBSCASH','Nan'],'B4':['Nan','Eternit','Nan'] ,
                         'B5':['Nan','Nan','CMBS'],'B6':['Nan','Nan','Cash']})

 final = pd.DataFrame(data = {'A':[10] , 'B1':['CMBS-Cash'],'B2':['CMBS'] ,'B3':['CMBSCASH'],'B4':['Eternit'] ,'B5':['CMBS'],'B6':['Cash'] })

1 Ответ

0 голосов
/ 25 июня 2019

Если вы заполните значения "NaN" "", вы можете использовать groupby и sum

final = sample.fillna("").groupby("A").sum().reset_index()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...