【问题标题】:Assign Top frequent values in one column to a new column将一列中最常见的值分配给新列
【发布时间】:2020-12-11 19:27:06
【问题描述】:

我需要在一列中找到 15 个最常见的值并将其分配给新列。 我尝试了以下方法,但没有成功。

df2 = df.assign(job15 = df['job'].value_counts()[14::-1])

还有这个

df['job15'] = df['job'].value_counts()[14::-1]

但他们没有工作。有没有人有办法做到这一点。 所以我现在拥有的数据集是这样的

Col0    Col1    Col2     job
11       02     ahn    Marketing
22       05     ghdf   Sales
58       058    syg    Sales
68       085    sdhj   Finance
86       088    sgx    Marketing
55       08     dyy    IT

而我想要的结果应该是这样的

Col0    Col1    Col2     job        job15
11       02     ahn    Marketing     Marketing
22       05     ghdf    Sales        Sales
58       058    syg     Sales        Sales
68       085    sdhj   Finance       Null
86       088    sgx    Marketing     Marketing
55       08     dyy      IT          Null

【问题讨论】:

    标签: python pandas numpy dataframe


    【解决方案1】:

    尝试分组:

    import pandas as pd
    import numpy as np
    # sample data
    dat = np.random.randint(0,20,size=1000).reshape((500,2))
    df= pd.DataFrame(data=dat, columns=['A','countA'])
    
    # aggregation with groupby on any "filled" column
    aggr = df.groupby('A').count().sort_values(by='countA', ascending=False)
    
    aggr = aggr.reset_index()
    
    best15 = aggr[:15]
    

    【讨论】:

    • 感谢您的回答,但我现在澄清了我的问题并添加了一个示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多