我想在我的数据帧中添加一个空的稀疏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
我无法弄清楚如何在不丢失数据类型和保持稀疏性的情况下添加它。
我认识到有很多方法可以达到这个目的,但我会处理非常大的数据集,我想避免在内存中创建不必要的对象。
答案 0 :(得分:0)
根据@COLDSPEED的评论,无法将稀疏序列与密集数据帧组合在一起。解决方案是将数据帧转换为稀疏,然后添加系列。
df = df.to_sparse()
df['newcol'] = pd.SparseSeries([False] * len(df), dtype='bool_', fill_value=False)