Extract values in Pandas value_counts()

前端 未结 6 1272
余生分开走
余生分开走 2020-11-30 19:13

Say we have used pandas dataframe[column].value_counts() which outputs:

 apple   5 
 sausage 2
 banana  2
 cheese  1

How do yo

相关标签:
6条回答
  • 2020-11-30 19:33

    If anyone missed it out in the comments, try this:

    dataframe[column].value_counts().to_frame()
    
    0 讨论(0)
  • 2020-11-30 19:33

    First you have to sort the dataframe by the count column max to min if it's not sorted that way already. In your post, it is in the right order already but I will sort it anyways:

    dataframe.sort_index(by='count', ascending=[False])
        col     count
    0   apple   5
    1   sausage 2
    2   banana  2
    3   cheese  1 
    

    Then you can output the col column to a list:

    dataframe['col'].tolist()
    ['apple', 'sausage', 'banana', 'cheese']
    
    0 讨论(0)
  • 2020-11-30 19:49
    #!/usr/bin/env python
    
    import pandas as pd
    
    # Make example dataframe
    df = pd.DataFrame([(1, 'Germany'),
                       (2, 'France'),
                       (3, 'Indonesia'),
                       (4, 'France'),
                       (5, 'France'),
                       (6, 'Germany'),
                       (7, 'UK'),
                       ],
                      columns=['groupid', 'country'],
                      index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
    
    # What you're looking for
    values = df['country'].value_counts().keys().tolist()
    counts = df['country'].value_counts().tolist()
    

    Now, print(df['country'].value_counts()) gives:

    France       3
    Germany      2
    UK           1
    Indonesia    1
    

    and print(values) gives:

    ['France', 'Germany', 'UK', 'Indonesia']
    

    and print(counts) gives:

    [3, 2, 1, 1]
    
    0 讨论(0)
  • 2020-11-30 19:49

    Code

    train["label_Name"].value_counts().to_frame()
    

    where : label_Name Mean column_name

    result (my case) :-

    0    29720 
    1     2242 
    Name: label, dtype: int64
    
    0 讨论(0)
  • 2020-11-30 19:50

    Try this:

    dataframe[column].value_counts().index.tolist()
    ['apple', 'sausage', 'banana', 'cheese']
    
    0 讨论(0)
  • 2020-11-30 19:54

    The best way to extract the values is to just do the following

    json.loads(dataframe[column].value_counts().to_json())
    

    This returns a dictionary which you can use like any other dict. Using values or keys.

     {"apple": 5, "sausage": 2, "banana": 2, "cheese": 1}
    
    0 讨论(0)
提交回复
热议问题