У меня есть фрейм данных, как показано ниже:

 member_id  |   loan_amnt   |  Age   | Marital_status
 AK219      |    49539.09   |  34    |  Married 
 AK314      |    1022454.00 |  37    |  NA
 BN204      |    75422.00   |  34    |  Single

Я хочу создать выходной файл в следующем формате

 Columns       | Null Values | Duplicate |
 member_id     |  N          |   N       |
 loan_amnt     |  N          |   N       |
 Age           |  N          |   Y       |
 Marital Status|  Y          |   N       |

Я знаю об одном пакете Python, который называется PandasProfiling, но я хочу построить его описанным выше способом, чтобы я мог улучшить свой код по отношению к наборам данных.

1
Aditya Sharma 2 Май 2019 в 08:45

3 ответа

Лучший ответ

Используйте что-то вроде:

m=df.apply(lambda x: x.duplicated())
n=df.isna()
df_new=(pd.concat([pd.Series(n.any(),name='Null_Values'),pd.Series(m.any(),name='Duplicates')],axis=1)
                     .replace({True:'Y',False:'N'}))
2
Jeril 2 Май 2019 в 06:13

Вот однострочник Python:

pd.concat([df.isnull().any() , df.apply(lambda x: x.count() != x.nunique())], 1).replace({True: "Y", False: "N"})

0
hacker315 2 Май 2019 в 06:14

На самом деле Pandas_Profiling предоставляет вам несколько вариантов, где вы можете выяснить, есть ли повторяющиеся значения.

0
Amitesh Verma 14 Июл 2019 в 05:06