unable to convert float to int in pandas
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
|
show 2 more comments
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
3
Whatint
value do you expect forNaN
?
– 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
|
show 2 more comments
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
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
python pandas int
edited Nov 14 '18 at 22:09
Satyartha Prakash
asked Nov 14 '18 at 21:59
Satyartha PrakashSatyartha Prakash
12
12
3
Whatint
value do you expect forNaN
?
– 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
|
show 2 more comments
3
Whatint
value do you expect forNaN
?
– 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
|
show 2 more comments
2 Answers
2
active
oldest
votes
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.
add a comment |
You can try this to create strings:
myCol.astype(str).str.split('.', expand=True)[0].tolist()
Output:
['nan', '0', '-1', '0', '0', '2']
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Nov 14 '18 at 22:18
farisfaris
165
165
add a comment |
add a comment |
You can try this to create strings:
myCol.astype(str).str.split('.', expand=True)[0].tolist()
Output:
['nan', '0', '-1', '0', '0', '2']
add a comment |
You can try this to create strings:
myCol.astype(str).str.split('.', expand=True)[0].tolist()
Output:
['nan', '0', '-1', '0', '0', '2']
add a comment |
You can try this to create strings:
myCol.astype(str).str.split('.', expand=True)[0].tolist()
Output:
['nan', '0', '-1', '0', '0', '2']
You can try this to create strings:
myCol.astype(str).str.split('.', expand=True)[0].tolist()
Output:
['nan', '0', '-1', '0', '0', '2']
answered Nov 14 '18 at 22:21
Scott BostonScott Boston
56.9k73158
56.9k73158
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
3
What
int
value do you expect forNaN
?– 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