Значение Python DataFrame Groupby и Count для каждого класса [duplicate]

Это потратило так много времени на мое подчиненное Windows Jenkins.

Я знал, что git был в пути, потому что я выполнил «where git» в командной команде задания сборки.

where git
C:\Program Files (x86)\Git\cmd\git.exe

По-видимому, Jenkins Git Plugin выполняет ** до того, как ** наследуется среда.

УСТАНАВЛИВАЙТЕ ПУТЬ ВАШЕГО ПЛОЩАДЬ ГИТУ (ТОЛЬКО СДЕЛАЙТЕ ЭТО !!) [/ ​​g4]

1) Идите к своему Конфигурация ведомого Windows Управление Jenkins> Управление узлами

2) Выберите конфигурацию вашего подчиненного устройства

3) Проверьте местоположение инструмента в свойствах узла

4) Введите полный путь к git исполняемый файл, включая git.exe

[x] Tool Locations
   Name: (GIT) git
   Home: C:\Program Files (x86)\Git\cmd\git.exe

См. снимок экрана:

26
задан emax 21 October 2015 в 23:52
поделиться

2 ответа

Вы можете использовать groupb's size :

In [11]: df.groupby(["Group", "Size"]).size()
Out[11]:
Group     Size
Moderate  Medium    1
          Small     1
Short     Small     2
Tall      Large     1
dtype: int64

In [12]: df.groupby(["Group", "Size"]).size().reset_index(name="Time")
Out[12]:
      Group    Size  Time
0  Moderate  Medium     1
1  Moderate   Small     1
2     Short   Small     2
3      Tall   Large     1
47
ответ дан Andy Hayden 20 August 2018 в 14:11
поделиться
  • 1
    Благодарю. Одно незначительное дополнение для выбора верхних значений k (= 20) на основе частоты («Время»): df.groupby ([«Группа», «Размер»]). Size (). Reset_index (name = & quot; ; Время & Quot;) sort_values ​​(по времени '' =, восходящий = False) .Head (20). – Dileep Kumar Patchigolla 18 December 2017 в 13:40

Вы также можете попробовать pd.crosstab()

Group           Size

Short          Small
Short          Small
Moderate       Medium
Moderate       Small
Tall           Large

pd.crosstab(df.Group,df.Size)


Size      Large  Medium  Small
Group                         
Moderate      0       1      1
Short         0       0      2
Tall          1       0      0

РЕДАКТИРОВАТЬ: для того, чтобы получить ваш выход

pd.crosstab(df.Group,df.Size).replace(0,np.nan).\
     stack().reset_index().rename(columns={0:'Time'})
Out[591]: 
      Group    Size  Time
0  Moderate  Medium   1.0
1  Moderate   Small   1.0
2     Short   Small   2.0
3      Tall   Large   1.0
15
ответ дан Wen 20 August 2018 в 14:11
поделиться
  • 1
    хороший. вы можете даже добавить margins=True, чтобы получить предельные значения! – Matt Hancock 27 June 2017 в 19:43
  • 2
    панды. подарок, который продолжает давать. – Jim 5 April 2018 в 16:34
Другие вопросы по тегам:

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