unable to convert float to int in pandas










0















I want to convert a column which has values -1.0, 0.0 and Nans to int. I have tried both pd.tonumeric and also myCol.astype



myCol = pd.to_numeric(myCol,downcast='signed', errors = 'coerce')
myCol.astype(np.int64, errors= 'ignore')


None of these approaches work.
Desired input and output



input: myCol = pd.Series([np.nan, 0.0, -1.0, 0.0, 0.0, 2.0])
output: Nan, 0, -1, 0, 0, 2


Thanks.










share|improve this question



















  • 3





    What int value do you expect for NaN?

    – RafaelC
    Nov 14 '18 at 22:00






  • 3





    What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

    – G. Anderson
    Nov 14 '18 at 22:00











  • @G.Anderson Sorry about that. Just edited.

    – Satyartha Prakash
    Nov 14 '18 at 22:10











  • And what are your current outputs given that input?

    – G. Anderson
    Nov 14 '18 at 22:11











  • An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

    – Scott Boston
    Nov 14 '18 at 22:11















0















I want to convert a column which has values -1.0, 0.0 and Nans to int. I have tried both pd.tonumeric and also myCol.astype



myCol = pd.to_numeric(myCol,downcast='signed', errors = 'coerce')
myCol.astype(np.int64, errors= 'ignore')


None of these approaches work.
Desired input and output



input: myCol = pd.Series([np.nan, 0.0, -1.0, 0.0, 0.0, 2.0])
output: Nan, 0, -1, 0, 0, 2


Thanks.










share|improve this question



















  • 3





    What int value do you expect for NaN?

    – RafaelC
    Nov 14 '18 at 22:00






  • 3





    What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

    – G. Anderson
    Nov 14 '18 at 22:00











  • @G.Anderson Sorry about that. Just edited.

    – Satyartha Prakash
    Nov 14 '18 at 22:10











  • And what are your current outputs given that input?

    – G. Anderson
    Nov 14 '18 at 22:11











  • An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

    – Scott Boston
    Nov 14 '18 at 22:11













0












0








0








I want to convert a column which has values -1.0, 0.0 and Nans to int. I have tried both pd.tonumeric and also myCol.astype



myCol = pd.to_numeric(myCol,downcast='signed', errors = 'coerce')
myCol.astype(np.int64, errors= 'ignore')


None of these approaches work.
Desired input and output



input: myCol = pd.Series([np.nan, 0.0, -1.0, 0.0, 0.0, 2.0])
output: Nan, 0, -1, 0, 0, 2


Thanks.










share|improve this question
















I want to convert a column which has values -1.0, 0.0 and Nans to int. I have tried both pd.tonumeric and also myCol.astype



myCol = pd.to_numeric(myCol,downcast='signed', errors = 'coerce')
myCol.astype(np.int64, errors= 'ignore')


None of these approaches work.
Desired input and output



input: myCol = pd.Series([np.nan, 0.0, -1.0, 0.0, 0.0, 2.0])
output: Nan, 0, -1, 0, 0, 2


Thanks.







python pandas int






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 22:09







Satyartha Prakash

















asked Nov 14 '18 at 21:59









Satyartha PrakashSatyartha Prakash

12




12







  • 3





    What int value do you expect for NaN?

    – RafaelC
    Nov 14 '18 at 22:00






  • 3





    What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

    – G. Anderson
    Nov 14 '18 at 22:00











  • @G.Anderson Sorry about that. Just edited.

    – Satyartha Prakash
    Nov 14 '18 at 22:10











  • And what are your current outputs given that input?

    – G. Anderson
    Nov 14 '18 at 22:11











  • An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

    – Scott Boston
    Nov 14 '18 at 22:11












  • 3





    What int value do you expect for NaN?

    – RafaelC
    Nov 14 '18 at 22:00






  • 3





    What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

    – G. Anderson
    Nov 14 '18 at 22:00











  • @G.Anderson Sorry about that. Just edited.

    – Satyartha Prakash
    Nov 14 '18 at 22:10











  • And what are your current outputs given that input?

    – G. Anderson
    Nov 14 '18 at 22:11











  • An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

    – Scott Boston
    Nov 14 '18 at 22:11







3




3





What int value do you expect for NaN?

– RafaelC
Nov 14 '18 at 22:00





What int value do you expect for NaN?

– RafaelC
Nov 14 '18 at 22:00




3




3





What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

– G. Anderson
Nov 14 '18 at 22:00





What are the inputs, what are the outputs, and what are the desired outputs? Samples can help us diagnose the issue

– G. Anderson
Nov 14 '18 at 22:00













@G.Anderson Sorry about that. Just edited.

– Satyartha Prakash
Nov 14 '18 at 22:10





@G.Anderson Sorry about that. Just edited.

– Satyartha Prakash
Nov 14 '18 at 22:10













And what are your current outputs given that input?

– G. Anderson
Nov 14 '18 at 22:11





And what are your current outputs given that input?

– G. Anderson
Nov 14 '18 at 22:11













An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

– Scott Boston
Nov 14 '18 at 22:11





An unfortunate feature of pandas is that any numeric column with NaN becomes a float data type automatically. You could convert to a string and trim. However the column would be data type 'object'.

– Scott Boston
Nov 14 '18 at 22:11












2 Answers
2






active

oldest

votes


















0














Unfortunately NaN is a floating point number on its own (please check the IEEE 754 floating-point standard). Therefore, unless you drop the rows with NaNs, your conversion to int will always fail!



Your approach of using astype is correct otherwise.






share|improve this answer






























    0














    You can try this to create strings:



    myCol.astype(str).str.split('.', expand=True)[0].tolist()


    Output:



    ['nan', '0', '-1', '0', '0', '2']





    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%2f53309358%2funable-to-convert-float-to-int-in-pandas%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      Unfortunately NaN is a floating point number on its own (please check the IEEE 754 floating-point standard). Therefore, unless you drop the rows with NaNs, your conversion to int will always fail!



      Your approach of using astype is correct otherwise.






      share|improve this answer



























        0














        Unfortunately NaN is a floating point number on its own (please check the IEEE 754 floating-point standard). Therefore, unless you drop the rows with NaNs, your conversion to int will always fail!



        Your approach of using astype is correct otherwise.






        share|improve this answer

























          0












          0








          0







          Unfortunately NaN is a floating point number on its own (please check the IEEE 754 floating-point standard). Therefore, unless you drop the rows with NaNs, your conversion to int will always fail!



          Your approach of using astype is correct otherwise.






          share|improve this answer













          Unfortunately NaN is a floating point number on its own (please check the IEEE 754 floating-point standard). Therefore, unless you drop the rows with NaNs, your conversion to int will always fail!



          Your approach of using astype is correct otherwise.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 14 '18 at 22:18









          farisfaris

          165




          165























              0














              You can try this to create strings:



              myCol.astype(str).str.split('.', expand=True)[0].tolist()


              Output:



              ['nan', '0', '-1', '0', '0', '2']





              share|improve this answer



























                0














                You can try this to create strings:



                myCol.astype(str).str.split('.', expand=True)[0].tolist()


                Output:



                ['nan', '0', '-1', '0', '0', '2']





                share|improve this answer

























                  0












                  0








                  0







                  You can try this to create strings:



                  myCol.astype(str).str.split('.', expand=True)[0].tolist()


                  Output:



                  ['nan', '0', '-1', '0', '0', '2']





                  share|improve this answer













                  You can try this to create strings:



                  myCol.astype(str).str.split('.', expand=True)[0].tolist()


                  Output:



                  ['nan', '0', '-1', '0', '0', '2']






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 14 '18 at 22:21









                  Scott BostonScott Boston

                  56.9k73158




                  56.9k73158



























                      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.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53309358%2funable-to-convert-float-to-int-in-pandas%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

                      Use pre created SQLite database for Android project in kotlin

                      Darth Vader #20

                      Ondo