【问题标题】:Pandas : How to Apply a Condition on Every Values of a Dataframe, Based on a Second Symmetrical DataframePandas:如何基于第二个对称数据帧对数据帧的每个值应用条件
【发布时间】:2022-11-23 12:45:52
【问题描述】:

我有一本包含 2 个 DF 的字典:“% 的数量变化”和“价格”。它们都是对称的 DF。

比方说,如果百分比的数量变化大于 100%,我想将价格设置为 0

import numpy as np;   import pandas as pd

d = {'qty_pct': pd.DataFrame({ '2020':   [200, 0.5, 0.4],
                               '2021':   [0.9, 0.5, 500],
                               '2022':   [0.9, 300, 0.4]}),
     'price':   pd.DataFrame({ '2020':   [-6, -2, -9],
                               '2021':   [ 2,  3,  4],
                               '2022':   [ 4,  6,  8]})}

# I had something like that in mind ...

df = d['price'].applymap(lambda x: 0 if x[d['qty_pct']] >=1 else x)

附言如果有任何机会在非对称 DF 上执行此操作,我很想知道它是如何完成的。 谢谢,

我想获得这个 DF :

price = pd.DataFrame({'2020':   [ 0, -2, -9],
                      '2021':   [ 2,  3,  0],
                      '2022':   [ 4,  0,  8]})

【问题讨论】:

    标签: pandas dataframe conditional-statements


    【解决方案1】:

    假设 priceqty_pct 始终具有相同的维度,那么您可以这样做:

    d['price'][d['qty_pct'] >= 1] = 0
    
    d['price']
       2020  2021  2022
    0     0     2     4
    1    -2     3     0
    2    -9     0     8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多