반응형
여러 데이터 프레임 열을 기준으로 주파수 카운트 가져오기
저는 다음과 같은 데이터 프레임을 가지고 있습니다.
그룹. | 크기 |
---|---|
짧다 | 작은. |
짧다 | 작은. |
적당한. | 중간의 |
적당한. | 작은. |
키가크다 | 큰. |
데이터 프레임에 동일한 행이 몇 번 나타나는지 횟수를 세고 싶습니다.
Group Size Time
Short Small 2
Moderate Medium 1
Moderate Small 1
Tall Large 1
그룹바이즈를 이용하시면 됩니다.
import pandas as pd
# read the sample data from the OP
df = pd.read_html('https://stackoverflow.com/q/33271098/7758804')[0]
옵션 1:
dfg = df.groupby(by=["Group", "Size"]).size()
# which results in a pandas.core.series.Series
Group Size
Moderate Medium 1
Small 1
Short Small 2
Tall Large 1
dtype: int64
옵션 2:
dfg = df.groupby(by=["Group", "Size"]).size().reset_index(name="Time")
# which results in a pandas.core.frame.DataFrame
Group Size Time
0 Moderate Medium 1
1 Moderate Small 1
2 Short Small 2
3 Tall Large 1
옵션 3:
dfg = df.groupby(by=["Group", "Size"], as_index=False).size()
# which results in a pandas.core.frame.DataFrame
Group Size Time
0 Moderate Medium 1
1 Moderate Small 1
2 Short Small 2
3 Tall Large 1
팬더 1.1 이후 업데이트value_counts
이제 여러 열을 허용합니다.
df.value_counts(["Group", "Size"])
시도해 볼 수도 있습니다.pd.crosstab()
Group Size
Short Small
Short Small
Moderate Medium
Moderate Small
Tall Large
pd.crosstab(df.Group,df.Size)
Size Large Medium Small
Group
Moderate 0 1 1
Short 0 0 2
Tall 1 0 0
편집: 출력을 얻기 위해
pd.crosstab(df.Group,df.Size).replace(0,np.nan).\
stack().reset_index().rename(columns={0:'Time'})
Out[591]:
Group Size Time
0 Moderate Medium 1.0
1 Moderate Small 1.0
2 Short Small 2.0
3 Tall Large 1.0
다른 가능성은 다음과 같습니다.aggfunc='size'
df_solution = df.pivot_table(index=['Group','Size'], aggfunc='size')
언급URL : https://stackoverflow.com/questions/33271098/get-a-frequency-count-based-on-multiple-dataframe-columns
반응형
'bestsource' 카테고리의 다른 글
@ControllerAdvice로 간단한 서블릿 필터 작동 (0) | 2023.09.11 |
---|---|
열 모드에서 flexbox 항목을 랩할 때 컨테이너의 너비가 증가하지 않습니다. (0) | 2023.09.11 |
C/C++에서 %(모듈러스)를 사용할 수 있는 대안이 있습니까? (0) | 2023.09.11 |
Pandas DataFrame에서 열을 이동하는 방법 (0) | 2023.09.11 |
"mvn clean install" 실행 중 WARN 메시지 수정 방법 (0) | 2023.09.11 |