将 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"。
解决此问题的可能方法包括:
some_pd_series.index = df.index
some_pd_series.reset_index(drop=True, inplace=True)
我遇到了一个我无法理解的奇怪错误。也许这是我忽略的非常基本的东西。代码如下:
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"。
解决此问题的可能方法包括:
some_pd_series.index = df.index
some_pd_series.reset_index(drop=True, inplace=True)