Панды - как извлечь три верхние строки из предоставленного кадра данных - PullRequest
0 голосов
/ 07 октября 2018

Мои панды Фрейм данных df может выдать результат, как показано ниже:

grouped = df[(df['X'] == 'venture') & (df['company_code'].isin(['TDS','XYZ','UVW']))].groupby(['company_code','sector'])['X_sector'].count()

Вывод этого выглядит следующим образом:

company_code  sector                            
TDS           Meta                                 404
              Electrical                           333
              Mechanical                           533
              Agri                                 453
XYZ           Sports                               331
              Electrical                           354
              Movies                               375
              Manufacturing                        355            
UVW           Sports                               505
              Robotics                             345
              Movies                               56
              Health                               3263
              Manufacturing                        456
              Others                               524
Name: X_sector, dtype: int64

То, что я хочу получить, это три верхних секторав пределах балансовой единицы.Как это сделать?

1 Ответ

0 голосов
/ 07 октября 2018

Вы должны будете связать группу здесь.Рассмотрим этот пример:

import pandas as pd
import numpy as np

np.random.seed(111)

names = [
    'Robert Baratheon',
    'Jon Snow',
    'Daenerys Targaryen',
    'Theon Greyjoy',
    'Tyrion Lannister'
]

df = pd.DataFrame({
    'season': np.random.randint(1, 7, size=100),
    'actor': np.random.choice(names, size=100),
    'appearance': 1
})

s = df.groupby(['season','actor'])['appearance'].count()
print(s.sort_values(ascending=False).groupby('season').head(1)) # <-- head(3) for 3 values

Возвращает:

season  actor             
4       Daenerys Targaryen    7
6       Robert Baratheon      6
3       Robert Baratheon      6
5       Jon Snow              5
2       Theon Greyjoy         5
1       Jon Snow              4

Где s (обрезано на 4)

season  actor             
1       Daenerys Targaryen    2
        Jon Snow              4
        Robert Baratheon      2
        Theon Greyjoy         3
        Tyrion Lannister      4
2       Daenerys Targaryen    4
        Jon Snow              3
        Robert Baratheon      1
        Theon Greyjoy         5
        Tyrion Lannister      3
3       Daenerys Targaryen    2
        Jon Snow              1
        Robert Baratheon      6
        Theon Greyjoy         3
        Tyrion Lannister      3
4 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...