У меня есть две функции.
Первый отображает процент нулевых значений для каждого столбца в кадре данных:
def n_percent_nulls(self):
global percent_null
percent_null = self.isnull().sum() *100 / self.shape[0]
return percent_null
Второй вычисляет, какие столбцы имеют более 40% нулевых значений, и запрашивает у пользователя одинна единицу, если она / он хочет отбросить столбцы:
def drop_n_percent_nulls(self):
df_columns = list(self.columns)
s = pd.Series(percent_null, index=[x for x in df_columns])
for k, v in s.items():
if v > (40):
ask_user("\n{0} has over 40% null values, Would you like to drop it? (yes/no)\n".format(k))
if ask_user in yes_values:
self.df = self.df.drop(self.columns[k], axis=1, inplace=True)
Когда я вызываю функцию df.drop_n_percent_nulls()
в функции main()
программы, она правильно представит столбец, примет ввод пользователя,и не наложил ошибок.Однако, когда я представляю фрейм данных позже в программе, столбцы, которые должны были быть отброшены, все еще существуют.