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
'source' 카테고리의 다른 글
| PHP의 getenv()와 $_ENV의 비교 (0) | 2023.01.29 |
|---|---|
| JavaScript:Alert()를 덮어씁니다. (0) | 2023.01.29 |
| PHP: 배열에서 두 날짜 사이의 모든 날짜 반환 (0) | 2023.01.29 |
| PHP의 innode에 해당하는 Python? (0) | 2023.01.29 |
| MariaDB 형식 뷰 코드 (0) | 2023.01.29 |