#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Возьмите строку типа:
df.dropna(thresh=2)
Вместо того, чтобы удалять столбец на основе числа пустых значений, я хочу заполнить весь этот столбец нулями.
Таким образом, столбцы, которые имеют только одно пустое значение, будут нетронуты, в то время как столбцы с 2 пустыми значениями будут полностью заменены нулями.
Ответ №1:
Выполните итерацию по столбцам, и если количество значений NA больше 2, замените столбцы нулями, иначе сохраните столбец как есть:
for col in df.columns:
df[col] = 0 if df[col].isna().sum() > 2 else df[col]
Ответ №2:
попробуйте это
df=pd.DataFrame({"col1":[1,2,3,4,5,7],"col2":[1,2,3,4,np.NaN,2],"col3":[1,2,3,np.NaN,np.NaN,np.NaN]})
temp=(((df!=df).sum())>=2)#nothing much is happening here its simply just a filter for nan elements
temp1=df.columns
for x in range(len(temp)):
if temp[x]:
df[temp1[x]]=0
df
вывод:
col1 col2 col3
0 1 1.0 0
1 2 2.0 0
2 3 3.0 0
3 4 4.0 0
4 5 NaN 0
5 7 2.0 0