Как использовать функцию groupby с count (), с условием count, только если i> Num - PullRequest
0 голосов
/ 22 ноября 2018
print (df)
     Model  Brand   Type  Jan  Feb  Mar  April  May
0     C310   Benz    Car   10    8   13     29    0
1     C320   Benz    Car   15   11   16      0    7
2    Focus   Ford    Car   10    0    5     20    8
3     F150  Focus  Truck    5    0    5      0    2
4  Ram1500  Dodge  Truck    2    2    7      0    1
5  Caravan  Dodge    Van   20    8   13      5    0
6  Charger  Dodge    Car   17    0    5     10   15

Я хотел бы сгруппировать данные по двум столбцам и посчитать, если значения в других столбцах превышают Num, где Num может быть любым целочисленным значением.

Например,

df.groupby(['Type','Brand']).count() 

но я бы хотел посчитать только если значение больше чем Num.

Ваша помощь будет принята с благодарностью.Заранее спасибо.

1 Ответ

0 голосов
/ 22 ноября 2018

Используйте numpy.where для замены значений на NaN с, поскольку GroupBy.count исключает их:

Num = 10
cols = df.columns.difference(['Type','Brand', 'Model'])
df[cols] = np.where(df[cols] > Num, df[cols], np.nan)
df = df.groupby(['Type','Brand'])[cols].count() 

print (df)
             April  Feb  Jan  Mar  May
Type  Brand                           
Car   Benz       1    1    1    2    0
      Dodge      0    0    1    0    1
      Ford       1    0    0    0    0
Truck Dodge      0    0    0    0    0
      Focus      0    0    0    0    0
Van   Dodge      0    0    1    1    0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...