例如,我有两个数据帧,如:

dataframe1将是

            A     B     C     D     E
values1  0.25  0.33  0.12  0.22  0.08
values2  0.20  0.50  0.89  0.65  0.75

dataframe2将是

              A     B     C      D     E
boolean1   True False  True  False  True
boolean2  False False  True   True  True

并希望得到一个数据帧的结果:

      A  B     C     D     E
1  0.25  0  0.12     0  0.08  
2     0  0  0.89  0.65  0.78

因此,如果在dataframe2中为True,则只需从dataframe1中获取值,如果为False,则替换为0.我该怎么做?

推荐答案

您可以使用

df1 = df1.where(df2.values, 0)
# or
df1 = df1.mask(~df2.values, 0)
print(df1)

            A    B     C     D     E
values1  0.25  0.0  0.12  0.00  0.08
values2  0.00  0.0  0.89  0.65  0.75

Python相关问答推荐

使用SKLearn KMeans和外部生成的相关矩阵

错误:找不到TensorFlow / Cygwin的匹配分布

Python(Polars):使用之前的变量确定当前解决方案的Vector化操作

在Python中根据id填写年份系列

带有pandas的分区列上的过滤器的多个条件read_parquet

如何获取Django REST框架中序列化器内部的外卡属性?

如何在vercel中指定Python运行时版本?

Python plt.text中重叠,包adjust_text不起作用,如何修复?

如何处理嵌套的SON?

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

对于一个给定的数字,找出一个整数的最小和最大可能的和

Telethon加入私有频道

两个pandas的平均值按元素的结果串接元素.为什么?

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

Pre—Commit MyPy无法禁用非错误消息

使用NeuralProphet绘制置信区间时出错

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

转换为浮点,pandas字符串列,混合千和十进制分隔符

Pandas GroupBy可以分成两个盒子吗?

判断solve_ivp中的事件