考虑 -
df = pd.DataFrame({"a":[1,2,3]})
df
a
0 1
1 2
2 3
我想做两件事:
False
这是我提出的两种看似相似的方法。
第一种方法;分配列并将结果转换为稀疏。
df.assign(newcol=False).to_sparse(fill_value=False)
a newcol
0 1 False
1 2 False
2 3 False
第二种方法; 首先转换为稀疏,然后分配列。
df.to_sparse(fill_value=False).assign(newcol=False)
a newcol
0 1 0.0
1 2 0.0
2 3 0.0
这些0.0
让我失望了。
FWIW,这种类似于第二种的方法似乎也能正常运行,而False
代替0.0
-
df = df.to_sparse(fill_value=False)
df['newcol'] = pd.SparseSeries([False] * len(df), dtype='bool_', fill_value=False)
df
a newcol
0 1 False
1 2 False
2 3 False
我很困惑为什么两个看似相似的方法会产生截然不同的输出。这样做的正确方法是什么,为什么这些输出之间存在差异?