본문 바로가기
IT,SW,Data,Cloud,코딩/Python

20230616 빅분기공부

by 착실하게 2023. 6. 17.
반응형

작업형 제2유형 모의 문제 

# 시험환경 세팅
import pandas as pd
from sklearn import datasets
dataset = datasets.load_wine()
df = pd.DataFrame(dataset['data'], columns=dataset['feature_names'])
df['target'] = dataset['target']
df.to_csv("data1-1.csv", index=False)

#####################################################################

# 출력을 원할 경우 print() 함수 활용
# 예시) print(df.head())

# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가

# 데이터 파일 읽기 예제
import pandas as pd
df = pd.read_csv("data1-1.csv")

# 사용자 코딩
# 앞에서 부터 50%의 데이터와 'target'컬럼이 0 값을 가진 데이터만 활용해 'proline'컬럼의 평균을 구하시오 (소수점 절사(버림), 정수형 출력)
line = int(len(df)/2)
df = df[:line]
df = df[ df.target==0 ]
# print(df['proline'].mean())
print(int(df['proline'].mean()))
# 답안 제출 예시
# print(평균변수값)

# 시험환경 세팅
import pandas as pd
from sklearn import datasets
dataset = datasets.load_diabetes()
df = pd.DataFrame(dataset['data'], columns=dataset['feature_names'])
df.to_csv("data1-2.csv", index=False)

#####################################################################

# 출력을 원할 경우 print() 함수 활용
# 예시) print(df.head())

# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가

# 데이터 파일 읽기 예제
import pandas as pd
a = pd.read_csv("data1-2.csv")

# 사용자 코딩
# s1, s2, s3, s4, s5, s6, 컬럼의 행(row)별 합을 구하고 그 합이 0.1보다 큰 값의 수를 구하시오
# print(a.columns) 
# print(a.head())
a['ans'] = a.s1 + a.s2 + a.s3 + a.s4 + a.s5 + a.s6 
# print(a.head())

print(len(a[0.1<a['ans']]))

# 답안 제출 예시
# print(평균변수값)


# 시험환경 세팅
import pandas as pd
from sklearn import datasets
dataset = datasets.load_breast_cancer()
df = pd.DataFrame(dataset['data'], columns=dataset['feature_names'])
df['target'] = dataset['target']
df.to_csv("data1-3.csv", index=False)

#####################################################################

# 출력을 원할 경우 print() 함수 활용
# 예시) print(df.head())

# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가

# 데이터 파일 읽기 예제
import pandas as pd
a = pd.read_csv("data1-3.csv")

# 사용자 코딩
# 고유한 값이 가장 많은 컬럼의 이름은?
# print(a.columns)
df = a.nunique()#.reset_index()
# print(df)
df = df.sort_values( ascending=False)
# print(df)
# print(df.iloc[0,:]['index'])
print(df.index[0])

# 답안 제출 예시
# print(평균변수값)

a = pd.read_csv("data1-3.csv")
df = a.nunique().reset_index()
df = df.sort_values(by=0, ascending=False)
print(df.iloc[0,:]['index'])
#위에는 선생님코드. 좀더 효율적... 밑에꺼는 내가 했던거

 

제3유형 

from scipy import stats 

가설검정은 이 라이브러리 안에 있다고함


import pandas as pd

df = pd.read_csv('data/blood_pressure.csv', index_col=0)

# 사용자 코딩
# 해당 화면에서는 제출하지 않으며, 문제 풀이 후 답안제출에서 결괏값 제출
df['diff'] = df['bp_after'] - df['bp_before']
print(round(df['diff'].mean(),2)) #표본평균 

from scipy import stats
result = stats.ttest_rel(df['bp_after'] , df['bp_before'], alternative='less')
print(result)
print(round(result.statistic,2)) # 검정통계량 
print(round(result.pvalue,4)) #통계량에 대한 p-값 
####################################################################
stats.ttest_rel(1번째,2번째,alternative='greater/less/two-sided')
대립가설 기준으로, 1번째 데이터가 더 커야 한다면 greater 
대립가설 기준으로, 2번째 데이터가 더 커야 한다면 less
귀무가설이 같고, 대립가설이 같지 않음 d이라면 two-sided (디폴트값) 
####################################################################
유의수준 0.05 하에서 => p-value 값이 0.05 보다 작다면, 귀무가설을 기각하고 대립가설을 채택한다.
유의수준 보다 p-value값이 크면, 귀무가설을 기각하지 못한다.

st, pv = stats.ttest_rel(df['bp_after'] , df['bp_before'], alternative='less')
print(st)
print(pv)
반응형

댓글