Как обрабатывать записи в кадре данных с тем же идентификатором, но с некоторыми разными значениями в столбцах в python - PullRequest
1 голос
/ 19 июня 2020

Я работаю над фреймворком, используя pandas с банковскими (ссудными) реквизитами для клиентов. Проблема заключается в том, что некий уникальный идентификатор ссуды был записан 2 раза с разными значениями для некоторых функций соответственно. Я прилагаю снимок экрана, чтобы быть более точным c. enter image description here

Теперь вы видите, например, что этот уникальный идентификатор ссуды был записан 2 раза. Я хочу отбросить второй со значениями nan, но я не могу сделать это вручную, потому что существует 4900 подобных случаев. есть идеи?

Проблема не в значении NaN, проблема в двойных записях. Я хочу удалить строки со значениями nan только для двойных записей, а не для всего фрейма данных Заранее спасибо

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Подсчитать строки, где их> 1, и затем отбросить только nans, где есть> 1 строк.

df['flag'] = df.groupby(['Loan ID', 'Credit ID'])['Loan ID'].transform('count')
df = df.loc[df['flag'] > 1].dropna(subset=['Credit Score', 'Annual Income']).drop('flag', axis=1)
0 голосов
/ 19 июня 2020

Вместо того, чтобы отбрасывать nan строк, просто возьмите строки, в которых кредитный рейтинг или годовой доход не являются nan:

df = df[df['Credit Score'].notna()]
...