[python] Qlik에서와 같이 Pandas 데이터 프레임의 열에서 고유 값을 계산합니까?

다음과 같은 테이블이있는 경우 :

df = pd.DataFrame({
         'hID': [101, 102, 103, 101, 102, 104, 105, 101],
         'dID': [10, 11, 12, 10, 11, 10, 12, 10],
         'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
         'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})

내가 할 수있는 count(distinct hID)유일한 HID 5의 수를 가지고 올 클릭 테크에서. pandas 데이터 프레임을 사용하여 파이썬에서 어떻게 수행합니까? 아니면 numpy 배열일까요? 마찬가지로 그렇게한다면 count(hID)Qlik에서 8을 얻습니다. 팬더에서 동일한 작업을 수행하는 방법은 무엇입니까?



답변

고유 값을 세고 nunique다음을 사용하십시오 .

df['hID'].nunique()
5

null이 아닌 값만 계산하고 다음을 사용합니다 count.

df['hID'].count()
8

null 값을 포함한 총 값을 계산하려면 다음 size속성을 사용 합니다.

df['hID'].size
8

조건을 추가하려면 수정

부울 인덱싱 사용 :

df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])

또는 사용 query:

df.query('mID == "A"')['hID'].agg(['nunique','count','size'])

산출:

nunique    5
count      5
size       5
Name: hID, dtype: int64


답변

데이터가 데이터 프레임의 이름이라고 가정하면 다음을 수행 할 수 있습니다.

data['race'].value_counts()

이렇게하면 고유 한 요소와 발생 횟수가 표시됩니다.


답변

또는 각 열의 고유 값 수를 가져옵니다.

df.nunique()

dID    3
hID    5
mID    3
uID    5
dtype: int64

새로운 pandas 0.20.0 pd.DataFrame.agg

df.agg(['count', 'size', 'nunique'])

         dID  hID  mID  uID
count      8    8    8    8
size       8    8    8    8
nunique    3    5    3    5

당신은 항상 할 수있었습니다 agggroupby. stack프레젠테이션이 더 마음에 들어서 마지막에 사용 했습니다.

df.groupby('mID').agg(['count', 'size', 'nunique']).stack()


             dID  hID  uID
mID
A   count      5    5    5
    size       5    5    5
    nunique    3    5    5
B   count      2    2    2
    size       2    2    2
    nunique    2    2    2
C   count      1    1    1
    size       1    1    1
    nunique    1    1    1


답변

nuniquepandas에서 사용할 수 있습니다 .

df.hID.nunique()
# 5


답변

열의 고유 값 (예 : hIDdataframe df)을 계산하려면 다음을 사용하십시오.

len(df.hID.unique())


답변

len 함수를 사용하여 고유 한 속성을 사용할 수 있습니다.

len (df [ ‘hID’]. unique ()) 5


답변