Как я могу работать с выводом DataFrame? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть объект DataFrame, и я группирую по некоторым ключам и подсчитываю результаты.Проблема в том, что я хочу заменить один из индексов столбцов DataFrame для связи между счетами.

df.groupby(['A','B', 'C'])['C'].count().apply(f).reset_index()

Я ищу f, который заменяет столбец C назначение #timesC==1 / #timesC==0 для каждого значения A и B.

1 Ответ

0 голосов
/ 15 февраля 2019

Это то, что вы хотите?

import pandas as pd
import numpy as np

df = pd.DataFrame(
     {'A':[1,2,3,1,2,3],
      'B':[2,0,1,2,0,1],
      'C':[1,1,0,1,1,1]
      })
print(df)

def f(x):
    if np.count_nonzero(x==0)==0:
        return np.nan
    else:
        return np.count_nonzero(x==1)/np.count_nonzero(x==0)

result = df.groupby(['A','B'])['C'].apply(f).reset_index()
print(result)

Результат:

#df
   A  B  C
0  1  2  1
1  2  0  1
2  3  1  0
3  1  2  1
4  2  0  1
5  3  1  1

#result
   A  B    C
0  1  2  NaN
1  2  0  NaN
2  3  1  1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...