Eclipse CDT не может разрешить константы перечисления с конкретными именами [duplicate]

In [1]: df
Out[1]:
    Sp  Mt Value  count
0  MM1  S1     a      3
1  MM1  S1     n      2
2  MM1  S3    cb      5
3  MM2  S3    mk      8
4  MM2  S4    bg     10
5  MM2  S4   dgd      1
6  MM4  S2    rd      2
7  MM4  S2    cb      2
8  MM4  S2   uyi      7

In [2]: df.groupby(['Mt'], sort=False)['count'].max()
Out[2]:
Mt
S1     3
S3     8
S4    10
S2     7
Name: count

Чтобы получить индексы исходного DF, вы можете сделать:

In [3]: idx = df.groupby(['Mt'])['count'].transform(max) == df['count']

In [4]: df[idx]
Out[4]:
    Sp  Mt Value  count
0  MM1  S1     a      3
3  MM2  S3    mk      8
4  MM2  S4    bg     10
8  MM4  S2   uyi      7

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

Обновить

По градиентной вероятности, что это то, что запросит OP:

In [5]: df['count_max'] = df.groupby(['Mt'])['count'].transform(max)

In [6]: df
Out[6]:
    Sp  Mt Value  count  count_max
0  MM1  S1     a      3          3
1  MM1  S1     n      2          3
2  MM1  S3    cb      5          8
3  MM2  S3    mk      8          8
4  MM2  S4    bg     10         10
5  MM2  S4   dgd      1         10
6  MM4  S2    rd      2          7
7  MM4  S2    cb      2          7
8  MM4  S2   uyi      7          7
5
задан Some programmer dude 8 August 2012 в 15:38
поделиться

2 ответа

Это может быть вызвано ошибкой в ​​Eclipse CDT:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=356057

Попробуйте перестроить индекс (щелкните правой кнопкой мыши по проекту -> Index -> Rebuild)

13
ответ дан josias 22 August 2018 в 22:22
поделиться

Вы пытались создать именованный тип для перечисления?

i.e.

enum SCREEN_TYPE {  SCREEN_MAIN_MENU, SCREEN_LOADING, SCREEN_GAME };
0
ответ дан Sindico 22 August 2018 в 22:22
поделиться
  • 1
    да, я пробовал это, и я также попробовал typedef enum {...} SCREEN_TYPE, и оба они вызывают одну и ту же проблему – Eric B 8 August 2012 в 16:42
  • 2
    но если я сделаю то, что вы предлагаете, а затем, когда я использую enum, я заменю SCREEN_MAIN_MENU на SCREEN_TYPE :: SCREEN_MAIN_MENU, красные squiggles исчезнут ДАЖЕ, ЧТО НЕ НЕВОЗМОЖЕН C ++ CODE !? – Eric B 8 August 2012 в 16:47
  • 3
    работает ли он в этом случае? – Sindico 8 August 2012 в 18:14
  • 4
    Нет, он больше не будет компилироваться, если я это сделаю, хотя затмение, похоже, так и будет. – Eric B 8 August 2012 в 19:24
  • 5
    @EricB Если вы используете предложение в этом ответе, вы определяете новый тип SCREEN_TYPE, который действительно используется как SCREEN_TYPE::SCREEN_MAIN_MENU. Это действительно C ++. – Some programmer dude 9 August 2012 в 06:28
Другие вопросы по тегам:

Похожие вопросы: