gpt4 book ai didi

python - 匹配列并将其添加到数据框

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:37 26 4
gpt4 key购买 nike

我为这个而疯狂。我正在尝试根据在另一个数据框 DF2 中找到的值向数据框 DF1 添加一个新列。这是他们的样子,

DF1=

    Date         Amount      Currency
0 2014-08-20 -20000000 EUR
1 2014-08-20 -12000000 CAD
2 2014-08-21 10000 EUR
3 2014-08-21 20000 USD
4 2014-08-22 25000 USD

DF2=

    NAME       OPEN
0 EUR 10
1 CAD 20
2 USD 30

现在,我想在 DF1 中创建一个名为 'Amount (Local)' 的新列,其中每个金额都在 'Amount'DF2 中找到的正确匹配值相乘得到结果,

DF1=

    Date         Amount      Currency   Amount (Local)
0 2014-08-20 -20000000 EUR -200000000
1 2014-08-20 -12000000 CAD -240000000
2 2014-08-21 10000 EUR 100000
3 2014-08-21 20000 USD 600000
4 2014-08-22 25000 USD 750000

如果存在一种基于函数 将列添加到DF1 的方法,而不是像上述问题那样只是乘法,那也将不胜感激。

谢谢,

最佳答案

您可以使用 map来自你的第二个 df 的字典(在我的例子中它被称为 df1。你的是 DF2),然后将这个结果乘以数量:

In [65]:

df['Amount (Local)'] = df['Currency'].map(dict(df1[['NAME','OPEN']].values)) * df['Amount']
df
Out[65]:
Date Amount Currency Amount (Local)
index
0 2014-08-20 -20000000 EUR -200000000
1 2014-08-20 -12000000 CAD -240000000
2 2014-08-21 10000 EUR 100000
3 2014-08-21 20000 USD 600000
4 2014-08-22 25000 USD 750000

所以分解一下,map会将值与 dict 键中的值进行匹配,在这种情况下我们匹配 Currency针对 NAME键,字典中的值为OPEN值,其结果将是:

In [66]:

df['Currency'].map(dict(df1[['NAME','OPEN']].values))
Out[66]:
index
0 10
1 20
2 10
3 30
4 30
Name: Currency, dtype: int64

然后我们简单地将这个系列与 Amount 相乘来自 df 的专栏(在您的情况下为 DF1)以获得所需的结果。

关于python - 匹配列并将其添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25441305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com