Using fillna to replace missing data












0















When I am trying to use fillna to replace NaNs in the columns with means, the NaNs changed from float64 to object, showing:




bound method Series.mean of 0 NaNn1




Here is the code:



mean = df['texture_mean'].mean
df['texture_mean'] = df['texture_mean'].fillna(mean)`









share|improve this question

























  • mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

    – FabienP
    Nov 25 '18 at 11:06


















0















When I am trying to use fillna to replace NaNs in the columns with means, the NaNs changed from float64 to object, showing:




bound method Series.mean of 0 NaNn1




Here is the code:



mean = df['texture_mean'].mean
df['texture_mean'] = df['texture_mean'].fillna(mean)`









share|improve this question

























  • mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

    – FabienP
    Nov 25 '18 at 11:06
















0












0








0








When I am trying to use fillna to replace NaNs in the columns with means, the NaNs changed from float64 to object, showing:




bound method Series.mean of 0 NaNn1




Here is the code:



mean = df['texture_mean'].mean
df['texture_mean'] = df['texture_mean'].fillna(mean)`









share|improve this question
















When I am trying to use fillna to replace NaNs in the columns with means, the NaNs changed from float64 to object, showing:




bound method Series.mean of 0 NaNn1




Here is the code:



mean = df['texture_mean'].mean
df['texture_mean'] = df['texture_mean'].fillna(mean)`






python pandas missing-data






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 25 '18 at 10:52









TeeKea

3,22851832




3,22851832










asked Nov 25 '18 at 1:08









shabasshabas

1




1













  • mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

    – FabienP
    Nov 25 '18 at 11:06





















  • mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

    – FabienP
    Nov 25 '18 at 11:06



















mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

– FabienP
Nov 25 '18 at 11:06







mean is a method, so you should call it using parenthesis mean = df['texture_mean'].mean(). BTW, the stacktrace indicates the line where the error raises. Using this information is a good hint on what's going on.

– FabienP
Nov 25 '18 at 11:06














1 Answer
1






active

oldest

votes


















0














You cannot use mean = df['texture_mean'].mean. This is where the problem lies. The following code will work -



df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
df
A texture_mean
0 1.0 2.0
1 2.0 4.0
2 3.0 NaN
3 4.0 6.0
4 5.0 1.0
5 NaN NaN

df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

df
A texture_mean
0 1.0 2.00
1 2.0 4.00
2 3.0 3.25
3 4.0 6.00
4 5.0 1.00
5 NaN 3.25


In case you want to replace all the NaNs with the respective means of that column in all columns, then just do this -



df=df.fillna(df.mean())
df
A texture_mean
0 1.0 2.00
1 2.0 4.00
2 3.0 3.25
3 4.0 6.00
4 5.0 1.00
5 3.0 3.25


Let me know if this is what you want.






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%2f53463829%2fusing-fillna-to-replace-missing-data%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









    0














    You cannot use mean = df['texture_mean'].mean. This is where the problem lies. The following code will work -



    df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
    df
    A texture_mean
    0 1.0 2.0
    1 2.0 4.0
    2 3.0 NaN
    3 4.0 6.0
    4 5.0 1.0
    5 NaN NaN

    df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

    df
    A texture_mean
    0 1.0 2.00
    1 2.0 4.00
    2 3.0 3.25
    3 4.0 6.00
    4 5.0 1.00
    5 NaN 3.25


    In case you want to replace all the NaNs with the respective means of that column in all columns, then just do this -



    df=df.fillna(df.mean())
    df
    A texture_mean
    0 1.0 2.00
    1 2.0 4.00
    2 3.0 3.25
    3 4.0 6.00
    4 5.0 1.00
    5 3.0 3.25


    Let me know if this is what you want.






    share|improve this answer




























      0














      You cannot use mean = df['texture_mean'].mean. This is where the problem lies. The following code will work -



      df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
      df
      A texture_mean
      0 1.0 2.0
      1 2.0 4.0
      2 3.0 NaN
      3 4.0 6.0
      4 5.0 1.0
      5 NaN NaN

      df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

      df
      A texture_mean
      0 1.0 2.00
      1 2.0 4.00
      2 3.0 3.25
      3 4.0 6.00
      4 5.0 1.00
      5 NaN 3.25


      In case you want to replace all the NaNs with the respective means of that column in all columns, then just do this -



      df=df.fillna(df.mean())
      df
      A texture_mean
      0 1.0 2.00
      1 2.0 4.00
      2 3.0 3.25
      3 4.0 6.00
      4 5.0 1.00
      5 3.0 3.25


      Let me know if this is what you want.






      share|improve this answer


























        0












        0








        0







        You cannot use mean = df['texture_mean'].mean. This is where the problem lies. The following code will work -



        df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
        df
        A texture_mean
        0 1.0 2.0
        1 2.0 4.0
        2 3.0 NaN
        3 4.0 6.0
        4 5.0 1.0
        5 NaN NaN

        df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

        df
        A texture_mean
        0 1.0 2.00
        1 2.0 4.00
        2 3.0 3.25
        3 4.0 6.00
        4 5.0 1.00
        5 NaN 3.25


        In case you want to replace all the NaNs with the respective means of that column in all columns, then just do this -



        df=df.fillna(df.mean())
        df
        A texture_mean
        0 1.0 2.00
        1 2.0 4.00
        2 3.0 3.25
        3 4.0 6.00
        4 5.0 1.00
        5 3.0 3.25


        Let me know if this is what you want.






        share|improve this answer













        You cannot use mean = df['texture_mean'].mean. This is where the problem lies. The following code will work -



        df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
        df
        A texture_mean
        0 1.0 2.0
        1 2.0 4.0
        2 3.0 NaN
        3 4.0 6.0
        4 5.0 1.0
        5 NaN NaN

        df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

        df
        A texture_mean
        0 1.0 2.00
        1 2.0 4.00
        2 3.0 3.25
        3 4.0 6.00
        4 5.0 1.00
        5 NaN 3.25


        In case you want to replace all the NaNs with the respective means of that column in all columns, then just do this -



        df=df.fillna(df.mean())
        df
        A texture_mean
        0 1.0 2.00
        1 2.0 4.00
        2 3.0 3.25
        3 4.0 6.00
        4 5.0 1.00
        5 3.0 3.25


        Let me know if this is what you want.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 25 '18 at 12:15









        cph_stocph_sto

        2,3012421




        2,3012421
































            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%2f53463829%2fusing-fillna-to-replace-missing-data%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

            Create new schema in PostgreSQL using DBeaver

            Deepest pit of an array with Javascript: test on Codility

            Costa Masnaga