Я борюсь со странной ошибкой, которую я не могу понять. Может быть, это что-то очень основное, что я упускаю из виду. Код выглядит следующим образом:Дикие NaN появляются при добавлении серии pandas в качестве столбца в DataFrame
df = pd.DataFrame(
some_numpy_array,
columns=[i for i in range(N)])
df.shape
(57058, 20)
some_pd_series.shape
(57058,)
df["Text"] = some_pd_series
sum(some_pd_series.isnull())
0
sum(df["Text"].isnull())
21137
df["Text"]
должна быть точно такой же, как some_pd_series
, верно? Итак, откуда же все эти NaN
s внезапно появились?
Хотя форма серии могут быть одинаковыми не могут иметь одинаковые индексные метки, что значит 'LEN (df.index.intersection (some_pd_series.index)) 'show? Если это не то же самое, что и 57058, тогда метки индексов не совпадают, это приведет к «NaN», где метки индексов существуют в вашем 'df', но не в' some_pd_series' – EdChum
Вы можете исправить это, выполнив 'some_pd_series.index = df.index', тогда назначение столбца будет просто работать – EdChum
@EdChum Да, вы правы. Выполнение 'some_pd_series.reset_index (drop = True, inplace = True)' перед добавлением в 'df' также выполнило трюк. Спасибо, сэр! – machaerus