source

Qlik처럼 판다 데이터 프레임의 열에 고유한 값을 세는 것?

goodcode 2023. 1. 29. 20:42
반응형

Qlik처럼 판다 데이터 프레임의 열에 고유한 값을 세는 것?

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

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)Qlik에서 고유 HID에 대해 5를 계산합니다.Python에서는 판다 데이터 프레임을 사용하여 어떻게 하면 좋을까요?아니면 numpy 배열?마찬가지로, 만약 한다면count(hID)나는 클릭에서 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

넌 항상 할 수 있었어agg의 범위 내에서groupby나는 사용했다.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

팬더에 사용할 수 있습니다.

df.hID.nunique()
# 5

중복되지 않는 행의 고유 수

df['hID'].nunique()

중복된 각 고유 행 컨텐츠의 수를 확인하려면

df['hID'].value_counts()

열의 고유 값을 카운트하려면 다음과 같이 하십시오.hID데이터 프레임의df, 사용방법:

len(df.hID.unique())

비슷한 걸 찾고 있었는데 당신이 도와줄 다른 방법을 찾았어요

  • null 값의 수를 카운트하려면 다음 함수를 사용할 수 있습니다.
def count_nulls(s):
    return s.size - s.count()
  • 고유한 카운트에 NaN 값을 포함하려면 nunique 함수에 dropna=False를 전달해야 합니다.
def unique_nan(s):
    return s.nunique(dropna=False)
  • 다음은 타이타닉 데이터 세트를 사용한 모든 값의 요약입니다.
from scipy.stats import mode

agg_func_custom_count = {
    'embark_town': ['count', 'nunique', 'size', unique_nan, count_nulls, set]
}
df.groupby(['deck']).agg(agg_func_custom_count)

자세한 내용은 이쪽

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

len(df['hID'.unique()) 5

언급URL : https://stackoverflow.com/questions/45759966/counting-unique-values-in-a-column-in-pandas-dataframe-like-in-qlik

반응형