Preferred pandas code for selecting all rows and a subset of columnsHow to deal with SettingWithCopyWarning in Pandas?Python: Pandas Series - Why use loc?Selecting multiple columns in a pandas dataframeRenaming columns in pandasAdding new column to existing DataFrame in Python pandasDelete column from pandas DataFrame“Large data” work flows using pandasChange data type of columns in PandasHow to iterate over rows in a DataFrame in Pandas?Select rows from a DataFrame based on values in a column in pandasCombine two columns of text in dataframe in pandas/pythonHow to check if a column exists in Pandas

Alternative to Willpower in Fighting Cravings

Examples of fluid (including air) being used to transmit digital data?

Multi-user CRUD: Valid, Problem, or Error?

I'm feeling like my character doesn't fit the campaign

Why do airports remove/realign runways?

Implicit conversion between decimals with different precisions

Why no parachutes in the Orion AA2 abort test?

Does the sensor of a dslr count the number of photons that hits it?

My professor has told me he will be the corresponding author. Will it hurt my future career?

Minor differences between two recorded guitars

Are host configurations in the SSH config merged?

Taking advantage when HR forgets to communicate the rules

Does the Milky Way orbit around anything?

Did William Shakespeare hide things in his writings?

Do I need transit visa for Dublin?

How to reclaim personal item I've lent to the office without burning bridges?

What do I need to see before Spider-Man: Far From Home?

Why does mean tend be more stable in different samples than median?

Tiny URL creator

How can I use my cell phone's light as a reading light?

What's the difference between a type and a kind?

What are some bad ways to subvert tropes?

Why does this function pointer assignment work when assigned directly but not with the conditional operator?

Computer name naming convention for security



Preferred pandas code for selecting all rows and a subset of columns


How to deal with SettingWithCopyWarning in Pandas?Python: Pandas Series - Why use loc?Selecting multiple columns in a pandas dataframeRenaming columns in pandasAdding new column to existing DataFrame in Python pandasDelete column from pandas DataFrame“Large data” work flows using pandasChange data type of columns in PandasHow to iterate over rows in a DataFrame in Pandas?Select rows from a DataFrame based on values in a column in pandasCombine two columns of text in dataframe in pandas/pythonHow to check if a column exists in Pandas






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















Suppose that you have a pandas DataFrame named df with columns ['a','b','c','d','e'] and you want to create a new DataFrame newdf with columns 'b' and 'd'. There are two possible ways to do this:



newdf = df[['b','d']]


or



newdf = df.loc[:,['b','d']]


The first is using the indexing operator. The second is using .loc. Is there a reason to prefer one over the other?










share|improve this question
























  • stackoverflow.com/questions/38886080/…

    – WeNYoBen
    Mar 25 at 20:42











  • Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

    – cs95
    Mar 25 at 20:43











  • @coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

    – Irv
    Mar 25 at 21:07











  • v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

    – cs95
    Mar 25 at 21:09

















0















Suppose that you have a pandas DataFrame named df with columns ['a','b','c','d','e'] and you want to create a new DataFrame newdf with columns 'b' and 'd'. There are two possible ways to do this:



newdf = df[['b','d']]


or



newdf = df.loc[:,['b','d']]


The first is using the indexing operator. The second is using .loc. Is there a reason to prefer one over the other?










share|improve this question
























  • stackoverflow.com/questions/38886080/…

    – WeNYoBen
    Mar 25 at 20:42











  • Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

    – cs95
    Mar 25 at 20:43











  • @coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

    – Irv
    Mar 25 at 21:07











  • v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

    – cs95
    Mar 25 at 21:09













0












0








0








Suppose that you have a pandas DataFrame named df with columns ['a','b','c','d','e'] and you want to create a new DataFrame newdf with columns 'b' and 'd'. There are two possible ways to do this:



newdf = df[['b','d']]


or



newdf = df.loc[:,['b','d']]


The first is using the indexing operator. The second is using .loc. Is there a reason to prefer one over the other?










share|improve this question
















Suppose that you have a pandas DataFrame named df with columns ['a','b','c','d','e'] and you want to create a new DataFrame newdf with columns 'b' and 'd'. There are two possible ways to do this:



newdf = df[['b','d']]


or



newdf = df.loc[:,['b','d']]


The first is using the indexing operator. The second is using .loc. Is there a reason to prefer one over the other?







pandas






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 21:06







Irv

















asked Mar 25 at 20:40









IrvIrv

667 bronze badges




667 bronze badges












  • stackoverflow.com/questions/38886080/…

    – WeNYoBen
    Mar 25 at 20:42











  • Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

    – cs95
    Mar 25 at 20:43











  • @coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

    – Irv
    Mar 25 at 21:07











  • v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

    – cs95
    Mar 25 at 21:09

















  • stackoverflow.com/questions/38886080/…

    – WeNYoBen
    Mar 25 at 20:42











  • Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

    – cs95
    Mar 25 at 20:43











  • @coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

    – Irv
    Mar 25 at 21:07











  • v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

    – cs95
    Mar 25 at 21:09
















stackoverflow.com/questions/38886080/…

– WeNYoBen
Mar 25 at 20:42





stackoverflow.com/questions/38886080/…

– WeNYoBen
Mar 25 at 20:42













Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

– cs95
Mar 25 at 20:43





Depending on what you do with the slices once you obtain them, you might run into a SettingWithCopyWarning which might prevent you from being able to make updates depending on whether you're dealing with a view or copy.

– cs95
Mar 25 at 20:43













@coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

– Irv
Mar 25 at 21:07





@coldspeed I think both operations produce a copy of the data, so you won't get that warning with operations on newdf. (Note - I modified the code a little to be able to reference newdf)

– Irv
Mar 25 at 21:07













v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

– cs95
Mar 25 at 21:09





v = df[['b']]; v['b'] = 3 throws SettingWithCopyWarning. The warning is raised on chained assignments, regardless of whether you have a view or copy. You don't have this issue with loc. That's my point.

– cs95
Mar 25 at 21:09












1 Answer
1






active

oldest

votes


















0














Thanks to @coldspeed, it seems that newdf = df.loc[:,['b','d']] is preferred to avoid the dreaded SettingWithCopyWarning.






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%2f55346080%2fpreferred-pandas-code-for-selecting-all-rows-and-a-subset-of-columns%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














    Thanks to @coldspeed, it seems that newdf = df.loc[:,['b','d']] is preferred to avoid the dreaded SettingWithCopyWarning.






    share|improve this answer



























      0














      Thanks to @coldspeed, it seems that newdf = df.loc[:,['b','d']] is preferred to avoid the dreaded SettingWithCopyWarning.






      share|improve this answer

























        0












        0








        0







        Thanks to @coldspeed, it seems that newdf = df.loc[:,['b','d']] is preferred to avoid the dreaded SettingWithCopyWarning.






        share|improve this answer













        Thanks to @coldspeed, it seems that newdf = df.loc[:,['b','d']] is preferred to avoid the dreaded SettingWithCopyWarning.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 25 at 22:13









        IrvIrv

        667 bronze badges




        667 bronze badges


















            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















            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%2f55346080%2fpreferred-pandas-code-for-selecting-all-rows-and-a-subset-of-columns%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

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

            Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript