Python Pandas Create USD_Converted column









up vote
0
down vote

favorite












I have two dataframes, deals



Currency Deal_Amount
0 USD 18.40
1 USD 18.40
2 USD 5559.00
3 USD 14300.00
4 USD 1000.00
5 EUR 3072.00
6 USD 500.00
7 CAD 100000.00
8 USD 250.00
15 EUR 6000.00


and currency_rates



currency_code year quarter from_usd_rate to_usd_rate
AED 2018 3 3.67285 0.27226813
ARS 2018 3 17.585 0.056866648
AUD 2018 3 1.27186 0.786250059
BRL 2018 3 3.1932 0.313165477
CAD 2018 3 1.2368 0.808538163
EUR 2018 3 0.852406 1.173149884
GBP 2018 3 0.747077 1.338550109
GHS 2018 3 4.4 0.227272727


I want to create a column in deals that converts deals where deals['Currency'] != USD, and apply the currency_rate['to_usd_rate'] to deals['Deal_Amount'] to get the USD converted amount.



So far i tried



def convert_amount(data):
if data['Currency']==currency_rates['currency_code']:
Converted_amount=data['Deal_Amount'] * currency_rates['to_usd_rate']
return Converted_amount


but its not working.










share|improve this question

























    up vote
    0
    down vote

    favorite












    I have two dataframes, deals



    Currency Deal_Amount
    0 USD 18.40
    1 USD 18.40
    2 USD 5559.00
    3 USD 14300.00
    4 USD 1000.00
    5 EUR 3072.00
    6 USD 500.00
    7 CAD 100000.00
    8 USD 250.00
    15 EUR 6000.00


    and currency_rates



    currency_code year quarter from_usd_rate to_usd_rate
    AED 2018 3 3.67285 0.27226813
    ARS 2018 3 17.585 0.056866648
    AUD 2018 3 1.27186 0.786250059
    BRL 2018 3 3.1932 0.313165477
    CAD 2018 3 1.2368 0.808538163
    EUR 2018 3 0.852406 1.173149884
    GBP 2018 3 0.747077 1.338550109
    GHS 2018 3 4.4 0.227272727


    I want to create a column in deals that converts deals where deals['Currency'] != USD, and apply the currency_rate['to_usd_rate'] to deals['Deal_Amount'] to get the USD converted amount.



    So far i tried



    def convert_amount(data):
    if data['Currency']==currency_rates['currency_code']:
    Converted_amount=data['Deal_Amount'] * currency_rates['to_usd_rate']
    return Converted_amount


    but its not working.










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have two dataframes, deals



      Currency Deal_Amount
      0 USD 18.40
      1 USD 18.40
      2 USD 5559.00
      3 USD 14300.00
      4 USD 1000.00
      5 EUR 3072.00
      6 USD 500.00
      7 CAD 100000.00
      8 USD 250.00
      15 EUR 6000.00


      and currency_rates



      currency_code year quarter from_usd_rate to_usd_rate
      AED 2018 3 3.67285 0.27226813
      ARS 2018 3 17.585 0.056866648
      AUD 2018 3 1.27186 0.786250059
      BRL 2018 3 3.1932 0.313165477
      CAD 2018 3 1.2368 0.808538163
      EUR 2018 3 0.852406 1.173149884
      GBP 2018 3 0.747077 1.338550109
      GHS 2018 3 4.4 0.227272727


      I want to create a column in deals that converts deals where deals['Currency'] != USD, and apply the currency_rate['to_usd_rate'] to deals['Deal_Amount'] to get the USD converted amount.



      So far i tried



      def convert_amount(data):
      if data['Currency']==currency_rates['currency_code']:
      Converted_amount=data['Deal_Amount'] * currency_rates['to_usd_rate']
      return Converted_amount


      but its not working.










      share|improve this question













      I have two dataframes, deals



      Currency Deal_Amount
      0 USD 18.40
      1 USD 18.40
      2 USD 5559.00
      3 USD 14300.00
      4 USD 1000.00
      5 EUR 3072.00
      6 USD 500.00
      7 CAD 100000.00
      8 USD 250.00
      15 EUR 6000.00


      and currency_rates



      currency_code year quarter from_usd_rate to_usd_rate
      AED 2018 3 3.67285 0.27226813
      ARS 2018 3 17.585 0.056866648
      AUD 2018 3 1.27186 0.786250059
      BRL 2018 3 3.1932 0.313165477
      CAD 2018 3 1.2368 0.808538163
      EUR 2018 3 0.852406 1.173149884
      GBP 2018 3 0.747077 1.338550109
      GHS 2018 3 4.4 0.227272727


      I want to create a column in deals that converts deals where deals['Currency'] != USD, and apply the currency_rate['to_usd_rate'] to deals['Deal_Amount'] to get the USD converted amount.



      So far i tried



      def convert_amount(data):
      if data['Currency']==currency_rates['currency_code']:
      Converted_amount=data['Deal_Amount'] * currency_rates['to_usd_rate']
      return Converted_amount


      but its not working.







      python pandas






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 9 at 19:06









      TH14

      255




      255






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote



          accepted










          You can merge and fillna with 1 to use as new rate



          A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
          df1['converted'] = A['Deal_Amount']*A['to_usd_rate']


          output



           index Currency Deal_Amount converted
          0 0 USD 18.4 18.400000
          1 1 USD 18.4 18.400000
          2 2 USD 5559.0 5559.000000
          3 3 USD 14300.0 14300.000000
          4 4 USD 1000.0 1000.000000
          5 5 EUR 3072.0 3603.916444
          6 6 USD 500.0 500.000000
          7 7 CAD 100000.0 80853.816300
          8 8 USD 250.0 250.000000
          9 15 EUR 6000.0 7038.899304





          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53231879%2fpython-pandas-create-usd-converted-column%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote



            accepted










            You can merge and fillna with 1 to use as new rate



            A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
            df1['converted'] = A['Deal_Amount']*A['to_usd_rate']


            output



             index Currency Deal_Amount converted
            0 0 USD 18.4 18.400000
            1 1 USD 18.4 18.400000
            2 2 USD 5559.0 5559.000000
            3 3 USD 14300.0 14300.000000
            4 4 USD 1000.0 1000.000000
            5 5 EUR 3072.0 3603.916444
            6 6 USD 500.0 500.000000
            7 7 CAD 100000.0 80853.816300
            8 8 USD 250.0 250.000000
            9 15 EUR 6000.0 7038.899304





            share|improve this answer
























              up vote
              0
              down vote



              accepted










              You can merge and fillna with 1 to use as new rate



              A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
              df1['converted'] = A['Deal_Amount']*A['to_usd_rate']


              output



               index Currency Deal_Amount converted
              0 0 USD 18.4 18.400000
              1 1 USD 18.4 18.400000
              2 2 USD 5559.0 5559.000000
              3 3 USD 14300.0 14300.000000
              4 4 USD 1000.0 1000.000000
              5 5 EUR 3072.0 3603.916444
              6 6 USD 500.0 500.000000
              7 7 CAD 100000.0 80853.816300
              8 8 USD 250.0 250.000000
              9 15 EUR 6000.0 7038.899304





              share|improve this answer






















                up vote
                0
                down vote



                accepted







                up vote
                0
                down vote



                accepted






                You can merge and fillna with 1 to use as new rate



                A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
                df1['converted'] = A['Deal_Amount']*A['to_usd_rate']


                output



                 index Currency Deal_Amount converted
                0 0 USD 18.4 18.400000
                1 1 USD 18.4 18.400000
                2 2 USD 5559.0 5559.000000
                3 3 USD 14300.0 14300.000000
                4 4 USD 1000.0 1000.000000
                5 5 EUR 3072.0 3603.916444
                6 6 USD 500.0 500.000000
                7 7 CAD 100000.0 80853.816300
                8 8 USD 250.0 250.000000
                9 15 EUR 6000.0 7038.899304





                share|improve this answer












                You can merge and fillna with 1 to use as new rate



                A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
                df1['converted'] = A['Deal_Amount']*A['to_usd_rate']


                output



                 index Currency Deal_Amount converted
                0 0 USD 18.4 18.400000
                1 1 USD 18.4 18.400000
                2 2 USD 5559.0 5559.000000
                3 3 USD 14300.0 14300.000000
                4 4 USD 1000.0 1000.000000
                5 5 EUR 3072.0 3603.916444
                6 6 USD 500.0 500.000000
                7 7 CAD 100000.0 80853.816300
                8 8 USD 250.0 250.000000
                9 15 EUR 6000.0 7038.899304






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 9 at 19:24









                Yuca

                2,6192525




                2,6192525



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53231879%2fpython-pandas-create-usd-converted-column%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Edmonton

                    Crossroads (UK TV series)