执行多个操作的Numpy

rdrgkggo  于 2023-02-23  发布在  其他
关注(0)|答案(1)|浏览(102)

我有两个 Dataframe 列,我想检查其中一个的元素是否在另一个的内部,我使用pandas isin方法执行此操作,但是,如果元素在第二个 Dataframe 中,我也想从两个 Dataframe 中减去is:
attivo['S'] = np.where(attivo['SKU'].isin(stampate['SKU-S']), attivo['S'] - 1, attivo['S'])
在此示例中,如果attivo Dataframe 的S列中的项目出现在stampate Dataframe 的SKU-S列中,则S列将减少一个单位,但是,我还希望stampate Dataframe 中的相同列S将减少。
如何才能做到这一点?
使用示例数据编辑:
df1 = pd.DataFrame({'SKU': 'productSKU', 'S': 5}, index=[0])
df2 = pd.DataFrame({'SKU-S': 'productSKU', 'S': 5}, index=[0])
目前,我正在实现这一目标:
x1米11米1x

但是,我希望更新两个 Dataframe ,在这种情况下,它们都将在S列中显示4。

yyyllmsg

yyyllmsg1#

s = df1['SKU'].isin(df2['SKU-S'])

# modify df1
df1['S'] -= s

# count the SKU in df1 that belongs to df2 by values
counts = df1['SKU'].where(s).value_counts()

# modify df2
df2['S'] -= df2['SKU-S'].map(counts).fillna(0)

相关问题