如何将空稀疏系列添加到Pandas数据框中?

时间:2018-01-10 03:35:02

标签: python pandas

我想在我的数据帧中添加一个空的稀疏Pandas系列。我尝试了以下但是结果系列既不稀疏,也不是我想要的数据类型:

df = pd.DataFrame({"a":[1,2,3]})
df['newcolumn'] = pd.Series(dtype='bool_').to_sparse(fill_value=False)

这增加了新列'系列到我的数据帧,但结果如下:

   a newcolumn
0  1       NaN
1  2       NaN
2  3       NaN

newcolumn看起来像这样:

0    NaN
1    NaN
2    NaN
Name: newcolumn, dtype: object

我想看到的是:

0    False
1    False
2    False
Name: newcolumn, dtype: bool

我无法弄清楚如何在不丢失数据类型和保持稀疏性的情况下添加它。

我认识到有很多方法可以达到这个目的,但我会处理非常大的数据集,我想避免在内存中创建不必要的对象。

1 个答案:

答案 0 :(得分:0)

根据@COLDSPEED的评论,无法将稀疏序列与密集数据帧组合在一起。解决方案是将数据帧转换为稀疏,然后添加系列。

df = df.to_sparse()
df['newcol'] = pd.SparseSeries([False] * len(df), dtype='bool_', fill_value=False)