Я предполагаю, что вы, должно быть, использовали функцию dropna для удаления значений NaN. Вы можете сбрасывать разными способами, используя функцию dropna. По умолчанию он отбрасывает строку и отбрасывает строку, если какой-либо столбец в этой строке имеет значение NaN. Вы можете изменить это поведение, установив различные параметры, например здесь .
И когда строка будет удалена, форма обязательно изменится. В вашем случае форма не должна измениться, потому что вы «не упали на место». Без установки для inplace значения True, функция dropna вернет вам отброшенный фрейм данных, а не изменит его в исходном фрейме данных.
Если отбрасывание индекса является желательным поведением, используйте dropna одним из способов:
df_final = df.dropna()
or
df.dropna(inplace=True)
Если у вас есть несколько столбцов в фрейме данных и вы хотите удалить строку только тогда, когда все столбцы имеют NaN, используйте:
df_final = df.dropna(how='all')
or
df.dropna(how='all', inplace=True)
Если у вас есть только один столбец и вы хотите защитите индекс, затем вы можете попробовать заменить значения NaN подходящим значением, например:
df_final = df.fillna(0)
or
df.fillna(value=0, inplace=True)
Для получения дополнительной информации о 'fillna' вы можете обратиться к этой ссылке .