Консультация питона в CSV .20 основных движений по отделам - PullRequest
0 голосов
/ 29 мая 2019

Мне нужно получить 20 самых больших 'MOV12' для 'DPTO', используя python и pandas

У меня есть CSV (.del) со следующими полями

"CODCLI" "DPTO" "SEG" "TIPPER"  "MOV12" 

11 20 "SEG1" "NAT" 6480.00  
19 20 "SEG1" "NAT" 0.00 
28 20 "SEG1" "NAT" 900.00 
29 24 "SEG4" "NAT" 1800.00 
31 20 "SEG1" "NAT" 3050.00 
38 20 "SEG1" "NAT" 0.00 
39 20 "SEG1" "NAT" 0.00 

Iиметь CSV со следующими полями, учитывая, что «DPTO» в общей сложности 12, и у меня есть тысячи данных

на данный момент и удалось получить мой 'MOV12'

import pandas as pd

df = pd.read_csv("c.del", sep = ' ') 
result=df.loc[df[['MOV12']].idxmax().unique()].groupby('DPTO')
print(result)

Надеюсь, вы дадите мне советы по поиску решения, спасибо

1 Ответ

0 голосов
/ 29 мая 2019

Используйте groupby и apply с nlargest

import pandas as pd
df = pd.read_csv("c.del", sep = ' ')
result=df.groupby('DPTO').apply(
    lambda x: x.nlargest(20,'MOV12')
)

Это найдет строки, соответствующие 20 наибольшим значениям 'MOV12' для каждого значения 'DPTO'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...