Преобразовать таблицу в агрегированную таблицу - PullRequest
0 голосов
/ 04 мая 2018

Я новичок в python pandas и хочу преобразовать следующий фрейм данных:

     AutomationStatus  TestPriority
0                    Done             4
1                    Done             4
2                    Done             4
3                    Done             4
4                    Done             4
5                    Done             4
6                    Done             4
7                    Done             4
8                    Done             4
9       Will Not Automate             3
10                   Done             4
11  Review for Automation             3
12  Review for Automation             3
13  Review for Automation             3
14  Review for Automation             3
15  Review for Automation             3
16  Review for Automation             3
17  Review for Automation             3
18  Review for Automation             3
19  Review for Automation             3
20  Review for Automation             3
21  Review for Automation             3
22  Review for Automation             3
23  Review for Automation             3
24  Review for Automation             3
25  Review for Automation             3
26  Review for Automation             3
27  Review for Automation             3

в формате, где отображаются агрегированные числа для AutomationStatus, например:

            TestPriority
                3   4

Automated       0    10
Manual Test     16    2

В основном я хочу пометить AutomationStatus=Done как Automated, а все - как Manual Test и показать количество связанных тестов (с приоритетом)

Я думаю, я должен использовать pivot_table, но не эксперт.

приветствуется любое предложение (и указание на документацию)

1 Ответ

0 голосов
/ 04 мая 2018

Вы можете использовать numpy.where для выравнивания значений AutomationStatus.

Затем используйте pd.pivot_table. Это минимальный пример:

print(df)

      AutomationStatus  TestPriority
0                 Done             4
1                 Done             4
2                 Done             4
3      WillNotAutomate             3
4                 Done             4
5  ReviewforAutomation             3
6  ReviewforAutomation             3
7  ReviewforAutomation             3

df['AutomationStatus'] = np.where(df['AutomationStatus'] == 'Done',
                                  'Automated', 'ManualTest')

res = df.pivot_table(index='AutomationStatus', columns=['TestPriority'],
                     aggfunc=len, fill_value=0)

print(res)

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