import pandas as pd
df = pd.DataFrame({
'col1': [99, None, 99],
'col2': [4, 5, 6],
'col3': [7, None, None]})
col_list = ['col1', 'col2']
df[col_list].dropna(axis=1, thresh=2, inplace = True)
Возвращает предупреждение и оставляет кадр данных без изменений:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
Следующее предупреждение не генерирует, но все же оставляет кадр данных без изменений.
df.loc[:,col_list].dropna(axis=1, thresh=2, inplace=True)
Проблема:
- Из списка столбцов, указанных пользователем, удалите те столбцы данных из кадра данных, у которых меньше «пороговых» ненулевых значений.Не вносите изменений в столбцы, которых нет в списке.
- Мне нужно использовать inplace = True, чтобы избежать создания копии кадра данных, поскольку он огромен
Я не могуЗацикливайте столбцы и применяйте dropna по одному столбцу за раз, потому что pandas.Series.dropna не имеет аргумента thresh.