python - pandas DataFrame 添加 fill_value NotImplementedError

标签 python pandas

我有:

import pandas as pd
import numpy as np

np.random.seed([3,1415])
df = pd.DataFrame(np.random.choice((1, 2, np.nan), (5, 5)))
s = pd.Series(range(5))

我想将 s 添加到 df 并跨行广播。通常我会:

df.add(s)

并完成它。但是,我想用 0 填充缺失值。所以我想我会:

df.add(s, fill_value=0)

但是我得到了:

NotImplementedError: fill_value 0 not supported

问题:如何获得预期的结果?

     0    1    2    3    4
0  1.0  1.0  2.0  3.0  4.0
1  2.0  3.0  2.0  4.0  4.0
2  1.0  1.0  3.0  4.0  4.0
3  1.0  1.0  2.0  4.0  6.0
4  1.0  3.0  4.0  3.0  5.0

最佳答案

堆栈跟踪表明此参数从未实现:

.../pandas/core/frame.py in _combine_match_columns(self, other, func, level, fill_value)
   3470         if fill_value is not None:
   3471             raise NotImplementedError("fill_value %r not supported" %
-> 3472                                       fill_value)
   3473

我可以在添加之前填充缺失值:

In [43]: df.fillna(0).add(s)
Out[43]:
   0  1  2  3  4
0  1  1  2  3  4
1  2  3  2  4  4
2  1  1  3  4  4
3  1  1  2  4  6
4  1  3  4  3  5

关于python - pandas DataFrame 添加 fill_value NotImplementedError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37887796/

相关文章:

python - 单元测试 Web 应用程序

Python - 根据两列组合删除数据框中的重复项?

python - 如何根据二级标准从多索引 pandas.Series 对象中提取?

python - 选择列不为空列表的 pandas DataFrame 行

python - 如何用最常见的值替换 pandas 列的值

python - 如何将 xarray 数据集转换为 dask 数据帧内的 pandas 数据帧

python - 从 Python 中的类中打印列表

python - 使用 Anaconda 安装 PyX 失败

python - 当需要抽样的数量多于样本数量时,不放回地随机抽样

python - 使用 pandas 将 DatetimeIndex 向量过滤到特定频率