Панды: Как составить список общего количества пользователей для каждой группы и всех пользователей в группе? - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующий код в блокноте jupyter:

import h5py
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_hdf('accounting-2018-10-deid.h5', 'table')
df.columns
Out[4]:
Index(['group', 'owner', 'job_number', 'submission_time', 'start_time',
   'end_time', 'failed', 'exit_status', 'granted_pe', 'slots',
   'task_number', 'maxvmem', 'h_data', 'h_rt', 'highp', 'exclusive',
   'h_vmem', 'gpu', 'pe', 'slot', 'wait_time', 'wtime', 'campus'],
  dtype='object')

Значения столбцов:

owner: the owner of a job
group: the group a owner belongs to; a group can have one or more owners

Задача: Для каждой группы перечислите число пользователей и перечислите всех этих пользователей (то есть пользователей, имеющих одинаковое поле «группа»). Например: группа 1 (4 пользователя): user2, user32, user41, user56?

Я пытался использовать groupby (), но не получил правильный ответ. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 18 января 2019

Это у вас работает?

import pandas as pd

df = pd.DataFrame({"owner": ["Allen", "Bob", "Cindy", "David", "Emily", "Frank"],
                   "group": ["A", "C", "B", "C", "B", "B"]})

groups = df.groupby("group")
for group in groups:
    print('There are {} owners in group {}'.format(group[1].shape[0], group[0]))
    print('They are {}.'.format(group[1].owner.to_string(index=False).replace('\n', ', ')))
    print()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...