Aggregate method and lambda function2019 Community Moderator ElectionDifference between append vs. extend list methods in PythonUsing global variables in a functionUnderstanding Python super() with __init__() methodsHow to make a chain of function decorators?Does Python have a string 'contains' substring method?Adding new column to existing DataFrame in Python pandasHow can I replace all the NaN values with Zero's in a column of a pandas dataframe“Large data” work flows using pandasChange data type of columns in PandasGet list from pandas DataFrame column headers

Why does Deadpool say "You're welcome, Canada," after shooting Ryan Reynolds in the end credits?

The bar has been raised

Low budget alien movie about the Earth being cooked

What is the chance of making a successful appeal to dismissal decision from a PhD program after failing the qualifying exam in the 2nd attempt?

Things to avoid when using voltage regulators?

Virginia employer terminated employee and wants signing bonus returned

Offered promotion but I'm leaving. Should I tell?

How much stiffer are 23c tires over 28c?

What wound would be of little consequence to a biped but terrible for a quadruped?

Does "variables should live in the smallest scope as possible" include the case "variables should not exist if possible"?

MTG: Can I kill an opponent in response to lethal activated abilities, and not take the damage?

Rejected in 4th interview round citing insufficient years of experience

How much attack damage does the AC boost from a shield prevent on average?

They call me Inspector Morse

How do I deal with a powergamer in a game full of beginners in a school club?

Force user to remove USB token

Good for you! in Russian

In the late 1940’s to early 1950’s what technology was available that could melt a LOT of ice?

Why does the negative sign arise in this thermodynamic relation?

Reverse string, can I make it faster?

What to do when during a meeting client people start to fight (even physically) with each others?

Making a sword in the stone, in a medieval world without magic

Should QA ask requirements to developers?

"One can do his homework in the library"



Aggregate method and lambda function



2019 Community Moderator ElectionDifference between append vs. extend list methods in PythonUsing global variables in a functionUnderstanding Python super() with __init__() methodsHow to make a chain of function decorators?Does Python have a string 'contains' substring method?Adding new column to existing DataFrame in Python pandasHow can I replace all the NaN values with Zero's in a column of a pandas dataframe“Large data” work flows using pandasChange data type of columns in PandasGet list from pandas DataFrame column headers










1















I have a dataframe df and would like to get the ID list for each class:



import pandas as pd
list1 = [[1, ('A', 'B', 'C')], [2, ('M', 'E', 'F')], [3, ('H', 'A', 'D')], [4, ('H', 'A', 'D')]]
df = pd.DataFrame(list1, columns=['ID', 'Class'])


df looks like



ID Class
1 (A, B, C)
2 (M, E, F)
3 (H, A, D)
4 (H, A, D)


The desired output is:



Class ID 
(A, B, C) [1]
(M, E, F) [2]
(H, A, D) [3, 4]


I tried to use the code below, but it is not working. Thanks.



df.groupby('Class')['ID'].aggregate(lambda x: list(x))









share|improve this question

















  • 1





    lambda x: list(x) is equivalent to list, but with more runtime overhead.

    – chepner
    Mar 6 at 16:34















1















I have a dataframe df and would like to get the ID list for each class:



import pandas as pd
list1 = [[1, ('A', 'B', 'C')], [2, ('M', 'E', 'F')], [3, ('H', 'A', 'D')], [4, ('H', 'A', 'D')]]
df = pd.DataFrame(list1, columns=['ID', 'Class'])


df looks like



ID Class
1 (A, B, C)
2 (M, E, F)
3 (H, A, D)
4 (H, A, D)


The desired output is:



Class ID 
(A, B, C) [1]
(M, E, F) [2]
(H, A, D) [3, 4]


I tried to use the code below, but it is not working. Thanks.



df.groupby('Class')['ID'].aggregate(lambda x: list(x))









share|improve this question

















  • 1





    lambda x: list(x) is equivalent to list, but with more runtime overhead.

    – chepner
    Mar 6 at 16:34













1












1








1








I have a dataframe df and would like to get the ID list for each class:



import pandas as pd
list1 = [[1, ('A', 'B', 'C')], [2, ('M', 'E', 'F')], [3, ('H', 'A', 'D')], [4, ('H', 'A', 'D')]]
df = pd.DataFrame(list1, columns=['ID', 'Class'])


df looks like



ID Class
1 (A, B, C)
2 (M, E, F)
3 (H, A, D)
4 (H, A, D)


The desired output is:



Class ID 
(A, B, C) [1]
(M, E, F) [2]
(H, A, D) [3, 4]


I tried to use the code below, but it is not working. Thanks.



df.groupby('Class')['ID'].aggregate(lambda x: list(x))









share|improve this question














I have a dataframe df and would like to get the ID list for each class:



import pandas as pd
list1 = [[1, ('A', 'B', 'C')], [2, ('M', 'E', 'F')], [3, ('H', 'A', 'D')], [4, ('H', 'A', 'D')]]
df = pd.DataFrame(list1, columns=['ID', 'Class'])


df looks like



ID Class
1 (A, B, C)
2 (M, E, F)
3 (H, A, D)
4 (H, A, D)


The desired output is:



Class ID 
(A, B, C) [1]
(M, E, F) [2]
(H, A, D) [3, 4]


I tried to use the code below, but it is not working. Thanks.



df.groupby('Class')['ID'].aggregate(lambda x: list(x))






python pandas






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 6 at 16:29









Steve PSteve P

686




686







  • 1





    lambda x: list(x) is equivalent to list, but with more runtime overhead.

    – chepner
    Mar 6 at 16:34












  • 1





    lambda x: list(x) is equivalent to list, but with more runtime overhead.

    – chepner
    Mar 6 at 16:34







1




1





lambda x: list(x) is equivalent to list, but with more runtime overhead.

– chepner
Mar 6 at 16:34





lambda x: list(x) is equivalent to list, but with more runtime overhead.

– chepner
Mar 6 at 16:34












2 Answers
2






active

oldest

votes


















1














lot of solutions here one:



df = df.groupby('Class')['ID'].apply(list).reset_index()

Class ID
0 (A, B, C) [1]
1 (H, A, D) [3, 4]
2 (M, E, F) [2]





share|improve this answer






























    3














    You should using



    df.groupby('Class').ID.agg(list).reset_index()
    Out[473]:
    Class ID
    0 (A, B, C) [1]
    1 (H, A, D) [3, 4]
    2 (M, E, F) [2]


    To fix your code



    df.groupby('Class')['ID'].aggregate(lambda x: x.tolist())





    share|improve this answer























    • Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

      – Steve P
      Mar 6 at 16:45











    • When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

      – Steve P
      Mar 6 at 16:46











    • @SteveP make sure that is tuple or list? Incolumn class

      – Wen-Ben
      Mar 6 at 16:50











    • Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

      – Steve P
      Mar 6 at 16:51












    • @SteveP if it is same like what you show to us , my query should work

      – Wen-Ben
      Mar 6 at 17:06










    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%2f55027910%2faggregate-method-and-lambda-function%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









    1














    lot of solutions here one:



    df = df.groupby('Class')['ID'].apply(list).reset_index()

    Class ID
    0 (A, B, C) [1]
    1 (H, A, D) [3, 4]
    2 (M, E, F) [2]





    share|improve this answer



























      1














      lot of solutions here one:



      df = df.groupby('Class')['ID'].apply(list).reset_index()

      Class ID
      0 (A, B, C) [1]
      1 (H, A, D) [3, 4]
      2 (M, E, F) [2]





      share|improve this answer

























        1












        1








        1







        lot of solutions here one:



        df = df.groupby('Class')['ID'].apply(list).reset_index()

        Class ID
        0 (A, B, C) [1]
        1 (H, A, D) [3, 4]
        2 (M, E, F) [2]





        share|improve this answer













        lot of solutions here one:



        df = df.groupby('Class')['ID'].apply(list).reset_index()

        Class ID
        0 (A, B, C) [1]
        1 (H, A, D) [3, 4]
        2 (M, E, F) [2]






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 6 at 16:36









        FrenchyFrenchy

        1,3422414




        1,3422414























            3














            You should using



            df.groupby('Class').ID.agg(list).reset_index()
            Out[473]:
            Class ID
            0 (A, B, C) [1]
            1 (H, A, D) [3, 4]
            2 (M, E, F) [2]


            To fix your code



            df.groupby('Class')['ID'].aggregate(lambda x: x.tolist())





            share|improve this answer























            • Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

              – Steve P
              Mar 6 at 16:45











            • When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

              – Steve P
              Mar 6 at 16:46











            • @SteveP make sure that is tuple or list? Incolumn class

              – Wen-Ben
              Mar 6 at 16:50











            • Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

              – Steve P
              Mar 6 at 16:51












            • @SteveP if it is same like what you show to us , my query should work

              – Wen-Ben
              Mar 6 at 17:06















            3














            You should using



            df.groupby('Class').ID.agg(list).reset_index()
            Out[473]:
            Class ID
            0 (A, B, C) [1]
            1 (H, A, D) [3, 4]
            2 (M, E, F) [2]


            To fix your code



            df.groupby('Class')['ID'].aggregate(lambda x: x.tolist())





            share|improve this answer























            • Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

              – Steve P
              Mar 6 at 16:45











            • When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

              – Steve P
              Mar 6 at 16:46











            • @SteveP make sure that is tuple or list? Incolumn class

              – Wen-Ben
              Mar 6 at 16:50











            • Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

              – Steve P
              Mar 6 at 16:51












            • @SteveP if it is same like what you show to us , my query should work

              – Wen-Ben
              Mar 6 at 17:06













            3












            3








            3







            You should using



            df.groupby('Class').ID.agg(list).reset_index()
            Out[473]:
            Class ID
            0 (A, B, C) [1]
            1 (H, A, D) [3, 4]
            2 (M, E, F) [2]


            To fix your code



            df.groupby('Class')['ID'].aggregate(lambda x: x.tolist())





            share|improve this answer













            You should using



            df.groupby('Class').ID.agg(list).reset_index()
            Out[473]:
            Class ID
            0 (A, B, C) [1]
            1 (H, A, D) [3, 4]
            2 (M, E, F) [2]


            To fix your code



            df.groupby('Class')['ID'].aggregate(lambda x: x.tolist())






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 6 at 16:32









            Wen-BenWen-Ben

            117k83369




            117k83369












            • Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

              – Steve P
              Mar 6 at 16:45











            • When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

              – Steve P
              Mar 6 at 16:46











            • @SteveP make sure that is tuple or list? Incolumn class

              – Wen-Ben
              Mar 6 at 16:50











            • Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

              – Steve P
              Mar 6 at 16:51












            • @SteveP if it is same like what you show to us , my query should work

              – Wen-Ben
              Mar 6 at 17:06

















            • Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

              – Steve P
              Mar 6 at 16:45











            • When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

              – Steve P
              Mar 6 at 16:46











            • @SteveP make sure that is tuple or list? Incolumn class

              – Wen-Ben
              Mar 6 at 16:50











            • Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

              – Steve P
              Mar 6 at 16:51












            • @SteveP if it is same like what you show to us , my query should work

              – Wen-Ben
              Mar 6 at 17:06
















            Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

            – Steve P
            Mar 6 at 16:45





            Hi Wenben, I got some error message. When I run df.groupby('Class').ID.agg(list).reset_index(), it says TypeError: 'type' object is not iterable.

            – Steve P
            Mar 6 at 16:45













            When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

            – Steve P
            Mar 6 at 16:46





            When I run df.groupby('Class')['ID'].aggregate(lambda x: x.tolist()), it says ValueError: Length of names must match number of levels in MultiIndex.

            – Steve P
            Mar 6 at 16:46













            @SteveP make sure that is tuple or list? Incolumn class

            – Wen-Ben
            Mar 6 at 16:50





            @SteveP make sure that is tuple or list? Incolumn class

            – Wen-Ben
            Mar 6 at 16:50













            Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

            – Steve P
            Mar 6 at 16:51






            Hi Wen-Ben, column Class such as (A, B, C) is a tuple.

            – Steve P
            Mar 6 at 16:51














            @SteveP if it is same like what you show to us , my query should work

            – Wen-Ben
            Mar 6 at 17:06





            @SteveP if it is same like what you show to us , my query should work

            – Wen-Ben
            Mar 6 at 17:06

















            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%2f55027910%2faggregate-method-and-lambda-function%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

            1928 у кіно

            Захаров Федір Захарович

            Ель Греко