在第二个数据帧中映射负值,保留坐标并替换第一个数据帧

爱德华多·瓦伦丁·多斯桑托斯

我有以下数据框:

df = pd.DataFrame([[1, 5, 1], [2, 6, 2], [3, 7, 3], [4, 8, 4]])
df2 = pd.DataFrame([[1, 5, 10], [3, 6, 2], [1, 9, 3], [4, 8, 4]])

我需要检查它们的减法(df - df2):

df_sub = pd.DataFrame([[0, 0, -9], [-1, 0, 0], [2, -2, 0], [0, 0, 0]])

当有负值时,我需要保留它们的坐标并在第一个数据框中替换为 0:

df = pd.DataFrame([[1, 5, 0], [0, 6, 2], [3, 0, 3], [4, 8, 4]])

我想到了一个这样的功能:

def find_negative(df):
  coordinates = []
  for column in df.columns:
    for index in df.index:
      if df.loc[index, column] < 0:
        coordinates.append((index, column))
  return coordinates

但是我怎样才能将它应用到第一个数据框呢?

理查德克

您可以减去df2使用dfdf.where

new_df = df.where(df - df2 >= 0, 0)

输出:

>>> new_df 
   0  1  2
0  1  5  0
1  0  6  2
2  3  0  3
3  4  8  4

>>> new_df.to_numpy().tolist()
[[1, 5, 0], [0, 6, 2], [3, 0, 3], [4, 8, 4]] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

映射两个数据帧,计算第二个数据帧中的时间戳在第一个数据帧的日期时间范围内的事件

如何为第一个数据帧中匹配的特定列值的所有值获取第二个数据帧的数据?

根据第二个数据帧中 2 列中的值,为第一个数据帧中的某些列添加后缀

如果第一个数据帧中存在行,如何更新第二个数据帧的存在值

从具有不同开始日期的第二个数据帧中过滤第一个数据帧的行

出现在第二个数据帧中的第一个数据帧的密钥并标记该事实

使用 Pyspark 查找第二个数据帧中未找到的行以及第一个数据帧的行号

将一个熊猫数据帧合并到另一个熊猫数据帧,并从第二个数据帧中删除第一个数据帧中存在的值

如何根据第二个中的可能值范围合并两个数据帧,但保留第一个中的值?

根据第二个数据帧汇总一个数据帧

检查第一个数据帧值以任何第二个数据帧值开始

两个数据帧之间的条件格式,在第二个数据帧中,如果条件对第一个数据帧有效,我想备注为真

Pyspark:内部连接两个 pyspark 数据帧并选择第一个数据帧中的所有列和第二个数据帧中的几列

在R中,如何根据第二个数据帧中的组保留一个数据帧中的所有行?

使用第二个数据帧中的行连接数据帧,这些行在第一个数据帧中不存在,基于列的子集

将一个数据帧中的NA值替换为第二个数据帧中的值

根据第二个数据帧替换数据帧中的列

根据数据帧R上成功第一个值的条件替换第二个值

R:循环遍历一个数据帧中的一组值更新第二个数据帧

将一个数据帧中的值匹配到不同长度的第二个数据帧中的值

如何计算一个数据帧中的值并将结果传输到 R 中相应列下的第二个数据帧?

检查标签,一个数据帧中的位置是否落在标签中,不同长度熊猫的第二个数据帧的范围

根据第二个数据帧中的日期范围对一个数据帧中的值求和

根据多个条件用第二个数据帧中的值替换数据帧中的 NA

如何使用一个数据帧中的值来计算第二个数据帧中大于或小于它的值的总数?

当第二个数据帧中存在匹配值时,替换数据帧列的值

R根据另一个中的值搜索第二个数据帧

基于第二个数据帧中的值的子集数据帧

标识第二个数据框中的行的值小于第一个