【问题标题】:Double Constrained Loop in PythonPython中的双重约束循环
【发布时间】:2020-04-05 01:21:21
【问题描述】:

我有一个理论上相当简单的问题。我似乎无法解决解决方案。我有 2 个熊猫数据框。

数据框 A:

Date           Currency    
-------------------------
2019-11-29     EUR
2019-11-29     USD
.              GBP
.              .
.              .
2019-10-31

数据框 B:

Date          Currency   Conversion
-----------------------------------
2019-11-29    USD        0.79
2019-11-29    GBP        1.23
2019-11-29    CHF        1.41
2019-11-28    USD        .
.
.
.
2019-10-31   USD         .
2019-10-31   GBP
2019-10-31   USD

我基本上在 Dataframe A 中有很长的交易清单,每天大约 5-15 次。这些工具以不同的货币购买,所有货币都应以欧元计价。我用 SQL 写了一篇文章,检索了该期间所有日期的兑换率(从货币 XX 到 EUR)。

现在我需要向数据框 A 添加一列:

IF DataframeA[Date] = DataframeB[Date] AND DataframeA[Currency] = DataframeB[Currency]

那么应该加上相应的转化率。

IF 语句本身我可以做,但我似乎无法在我的脚本运行时迭代和更新。有什么想法吗?

最好的 帕特里克

【问题讨论】:

  • 如果条件为真,你想添加哪一列?还是您要添加条件列本身。您想要相关的转化率吗?
  • 是的,转化率!因此,在第一行的情况下,我想在数据框 A 中添加一列“转化值”,其值为 0.79。

标签: python pandas loops dataframe


【解决方案1】:

DataframeA = pd.merge(DataframeA, DataFrameB, on=['Date', 'Currency'])

默认是内连接。您可以选择通过在合并命令中使用选项 Ex: how = 'outer' 来相应地修改它。 此外,根据需要删除或保留列,或者选择在来自两个数据框的公共列中添加后缀或前缀。阅读doc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    相关资源
    最近更新 更多