#python #pandas #numpy #dataframe
#python #pandas #numpy #фрейм данных
Вопрос:
Мне нужно найти 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
Ответ №1:
попробуйте groupby:
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]
Комментарии:
1. Спасибо за ваш ответ, но теперь я прояснил свой вопрос и добавил пример