python - 其中数据帧 1 等于 x 更改数据帧 y

标签 python pandas

我有两个数据框:

第一个:

a = {'Price': [10, 15, 20, 25, 30], 'Total': [10000, 12000, 10000, 11000, 10000],
     'Previous Quarter': [9000, 10000, 12000, 15000, 14000]}
a = pd.DataFrame(a)
print (a)

第二个是:

b = {'Price': [0, 94, 82, 16, 31], 'Total': [0, 900, 11000, 11000, 14000],
     'Previous Quarter': [0, 11000, 11000, 14000, 17000]}
b = pd.DataFrame(b)
print (b)

当数据帧“b”等于零时,如何将数据帧“a”中的值替换为零?

所以我想要的输出是

a = {'Price': [0, 15, 20, 25, 30], 'Total': [0, 12000, 10000, 11000, 10000],
 'Previous Quarter': [0, 10000, 12000, 15000, 14000]}
a = pd.DataFrame(a)
print (a)

最佳答案

因为它们有相同的索引,所以这是可行的:

a[b==0] = 0

另一种写法:

a.where(b!=0, 0)

关于python - 其中数据帧 1 等于 x 更改数据帧 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879244/

相关文章:

python - 从 Python 2 迁移到 3 : Must reinstall NLTK directory?

python - 点积的矩阵推广

python - 合并包含同一列的两个文件中的数据 - Python

python - 将同名行的最后一个条目应用于 Pandas 中的整个同名行

python - 从python中的文件名中检索单词

python - 按升序将元素添加到已排序的数组中

c++ - 使用 boost.python 将类暴露给 python 时出现构建错误

Python Pandas 找到非零索引

python - 使用 groupby 和 transform 每周获取 idxmax

python - 迭代两列并匹配 pandas 中不同行的值