【问题标题】:Multiple condition in pandas大熊猫的多重条件
【发布时间】:2020-01-04 20:44:29
【问题描述】:

我有一个数据集,其中包含价格和货币。有美元、欧元、azn 3 种货币,共有 25000 列。如何以 azn 货币计算价格 我必须将所有美元价格乘以 1.7,将欧元乘以 1.9。我在 pandas 中使用 where 但我可以这样做:

df['price_new'] = df.price.where(df.currency=='AZN', df.price*1.7)

但此代码仅适用于一种条件,并且仅将美元更改为 azn。

【问题讨论】:

  • 我建议不要使用./attribute 样式进行列访问。你为什么要用.where()这个,不就是一个基本的条件操作吗?无论如何,我投票决定关闭它,因为您没有理由不能多次重复相同的操作,而这类问题通常可以通过阅读文档来回答。
  • @AMC:如果您知道要阅读哪些文档,请提供链接或引用它们。
  • @9000 抱歉,我指的是 Pandas 文档本身。
  • @AMC:确实!如果你知道答案,就给它。如果您在 SO 上知道一个好的答案,请链接它,也许这是一个重复的问题。否则,在我看来,这个问题仍然是合理的。
  • @9000 我猜Essential basic functionality 是个不错的起点。

标签: python pandas conditional-statements


【解决方案1】:

您正在寻找np.select

con1=df.currency=='AZN'
con2=...
v1=df.price*1.7
v2=...
df['price_new'] = np.select([con1,con2],[v1,v2])

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2017-12-14
    • 2022-11-28
    • 2019-12-15
    • 2019-08-14
    • 2021-12-30
    • 2022-12-11
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多