将 pandas 系列作为列添加到 DataFrame 时出现 Wild NaN

Wild NaNs appear when adding pandas Series as a column to 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 突然从哪里来的呢?

感谢@EdChum 的评论,我发现问题是由索引不匹配引起的。发生这种情况是因为之前我从 some_pd_series 中删除了重复项,导致其索引中出现 "holes"。

解决此问题的可能方法包括:

  1. some_pd_series.index = df.index
  2. some_pd_series.reset_index(drop=True, inplace=True)