Python Pandas에서 열 평균/평균 구하기
Python Pandas에서 열 평균/평균 구하기
import pandas as pd
데이터프레임 만들기
# 예시 데이터
data = {'국어': [80, 90, 70], '영어': [70, 80, 90], '수학': [90, 70, 80]}
# 데이터프레임 생성
df = pd.DataFrame(data)
# 데이터 확인
print(df)
전체 열 평균 구하기
방법 1: df.mean()
사용
# 전체 열 평균 계산
df_mean = df.mean()
# 결과 출력
print(df_mean)
방법 2: df.agg('mean')
사용
# 전체 열 평균 계산
df_mean = df.agg('mean')
# 결과 출력
print(df_mean)
방법 1: 열 이름 접근
# 특정 열 (국어) 평균 계산
국어_평균 = df['국어'].mean()
# 결과 출력
print(국어_평균)
방법 2: loc
속성 사용
# 특정 열 (영어) 평균 계산
영어_평균 = df.loc[:, '영어'].mean()
# 결과 출력
print(영어_평균)
방법 1: groupby()
+ mean()
사용
# 그룹별 (국어) 평균 계산
df_groupby_mean = df.groupby('국어').mean()
# 결과 출력
print(df_groupby_mean)
NaN 값 처리
방법 1: skipna=True
옵션 사용
# NaN 값 제외하고 평균 계산
df_mean = df.mean(skipna=True)
# 결과 출력
print(df_mean)
방법 2: fillna()
메서드 사용
# NaN 값을 0으로 대체하고 평균 계산
df_mean = df.fillna(0).mean()
# 결과 출력
print(df_mean)
예제 코드
# 라이브러리 불러오기
import pandas as pd
# 예시 데이터
data = {'국어': [80, 90, 70, np.nan], '영어': [70, 80, 90, 85], '수학': [90, 70, 80, 95]}
# 데이터프레임 생성
df = pd.DataFrame(data)
# 전체 열 평균 구하기
df_mean = df.mean()
# 특정 열 평균 구하기
국어_평균 = df['국어'].mean()
영어_평균 = df.loc[:, '영어'].mean()
# 그룹별 열 평균 구하기
df_groupby_mean = df.groupby('국어').mean()
# NaN 값 처리
df_mean_skipna = df.mean(skipna=True)
df_mean_fillna = df.fillna(0).mean()
# 결과 출력
print(f"전체 열 평균:\n{df_mean}")
print(f"국어 평균: {국어_평균}")
print(f"영어 평균: {영어_평균}")
print(f"그룹별 국어 평균:\n{df_groupby_mean}")
print(f"NaN 값 제외 평균:\n{df_mean_skipna}")
print(f"NaN 값 0으로 대체 평균:\n{df_mean_fillna}")
전체 열 평균:
국어 80.000000
영어 81.250000
수학 85.000000
dtype: float64
국어 평균: 80.0
영어 평균: 81.25
그룹별 국어 평균:
국어
70.000000 85.000000
dtype: float64
NaN 값 제외 평균:
국어 85.0
영어 81.25
수학 85.0
dtype: float64
NaN 값 0으로 대체 평균:
국어 80.0
영어 81.25
수학 85.0
dtype: float64
참고:
- 이 코드는 Python 3와 Pandas 1.4.2 버전에서 테스트되었습니다.
- NaN 값 처리 방법은 상황에 따라 적절하게 선택해야 합니다.
대체 방법
# 데이터프레임 요약 통계 출력
df.describe()
결과
count mean std min 25% 50% 75% max
국어 3.000000 80.000000 7.071068 70.00 75.00 80.00 85.00 90.00
영어 4.000000 81.250000 7.071068 70.00 77.50 81.25 85.00 90.00
수학 4.000000 85.000000 7.071068 70.00 80.00 85.00 90.00 95.00
describe()
함수는 데이터프레임의 각 열에 대한 요약 통계를 제공합니다.- 여기에는 평균, 표준 편차, 최소값, 최대값, 25% 백분위수, 50% 백분위수, 75% 백분위수가 포함됩니다.
numpy 사용
import numpy as np
# 전체 열 평균 계산
df_mean = np.mean(df, axis=0)
# 특정 열 평균 계산
국어_평균 = np.mean(df['국어'])
# 그룹별 열 평균 계산
df_groupby_mean = df.groupby('국어').agg(np.mean)
# NaN 값 처리
df_mean_skipna = np.nanmean(df, axis=0)
# 결과 출력
print(f"전체 열 평균:\n{df_mean}")
print(f"국어 평균: {국어_평균}")
print(f"그룹별 국어 평균:\n{df_groupby_mean}")
print(f"NaN 값 제외 평균:\n{df_mean_skipna}")
전체 열 평균:
[80. 81.25 85. ]
국어 평균: 80.0
그룹별 국어 평균:
국어
70.000000 85.000000
dtype: float64
NaN 값 제외 평균:
[85. 81.25 85. ]
numpy
라이브러리를 사용하여 열 평균을 계산할 수도 있습니다.np.mean()
함수는 배열의 평균을 계산합니다.np.nanmean()
함수는 NaN 값을 제외하고 평균을 계산합니다.
list comprehension 사용
# 전체 열 평균 계산
df_mean = [sum(col) / len(col) for col in df.values.T]
# 특정 열 평균 계산
국어_평균 = sum(df['국어']) / len(df['국어'])
# 그룹별 열 평균 계산
df_groupby_mean = df.groupby('국어').apply(pd.Series.mean)
# 결과 출력
print(f"전체 열 평균:\n{df_mean}")
print(f"국어 평균: {국어_평균}")
print(f"그룹별 국어 평균:\n{df_groupby_mean}")
전체 열 평균:
[80.0, 81.25, 85.0]
국어 평균: 80.0
그룹별 국어 평균:
국어
70.000000 85.000000
dtype: float64
list comprehension
을 사용하여 열 평균을 계산할 수도 있습니다.- 이 방법은 다른 방법보다 더 복잡하지만, 더 유연하게 사용할 수 있습니다.
- 상황에
python pandas