Подсчет количества раз, когда значение придерживается условия в кадре данных - PullRequest
1 голос
/ 25 апреля 2020

У меня есть фрейм данных, в котором я хотел бы посчитать, сколько раз идентификатор встречается, исходя из условия, что он попадает в определенную категорию и в определенный период. У меня есть простая версия фрейма данных здесь:

enter image description here

Я хотел бы написать сценарий, который может рассчитывать количество раз, скажем, ID «1» происходит с категорией «1» в течение периода «период 1»

Таким образом, результат будет примерно таким:

count = 2

, поскольку идентификатор 1 произошел в категория 1 И период 1, дважды.

Обратите внимание, что я не хочу явно указывать идентификатор в сценарии, так как я хотел бы подсчитывать вхождения других идентификаторов, а не только идентификатор «1».

Ответы [ 3 ]

1 голос
/ 25 апреля 2020

Вы можете использовать pandas функцию поворота и в подсчете упоминания функции агрегирования

pd.pivot_table(df, index=['Category','period'], values='ID', aggfunc='count').reset_index()
1 голос
/ 25 апреля 2020

Проверьте условия, используя query, а затем примените len fun c, чтобы найти количество строк или количество.

len(df.query("id==1 & Category==1 & period=='period 1'"))
2

Обновления : ответ на вопрос, который будет обновлен позже, будет

df.query("Category==1 & period=='peroid 1'")['id'].value_counts()
1 голос
/ 25 апреля 2020

IIU C:

Вы говорите о том, где выполняются все условия, поэтому len кадра данных является ответом:

len(df[(df['ID'] == 1) & (df['category'] == 1) & (df['period'] == 'period 1')])

ИЛИ

(df['ID'].eq(1) & df['category'].eq(1) & df['period'].eq('period 1')).sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...