
0. 개요
오늘 파이썬 라이브 강의 세션에서 들은 것도 정리하고, 오늘 문제 푼 것도 다시 정리해보려고 한다. 그런데 문제가 있다면 문제를 풀고도 왜 이 식이 이게 맞는지 하나도 모르겠다.
1. %%time
소요시간을 측정하는 커맨드 측정 커맨드 정리
%time : 뒤에 나오는 한줄 커맨드 소요시간
%timeit : 뒤에 나오는 한줄 커맨드 반복수행 후(iteration) 평균 소요시간
%%time : 뒤에서 나오는 셀 전체 수행 후 소요시간
%%timeit : 뒤에서 나오는 셀 전체 수행 후 평균 소요시간
[사용 방법]
%time #뒤에 나오는 한줄 커맨드 소요시간
sum = 0 #합계의 정의 sum = 0
for i in range(1000000): #범위는 1~1000000 까지를 하며 i 에 숫자를 넣고 밑의 함수를 반복한다.
sum=sum+i #합계는 결론적으로 합계 + i 를 계속더한 값이다.
print("1부터 1000000만까지 합:", '',sum)
일단 처음 쓰는 거라서 예시로 라이브 세션에서 준 자료를 그대로 따라해보았다.

일단 내 CPU 는 꾸지구나! 를 알수 있지만, 이걸 계산하기 위해서 Wall Time 즉 11.9 초의 시간이 걸린다는 것을 확인 가능했다.
2. 라이브러리 배우기
이전에 기본적으로 numpy 와 pandas 를 비롯한 라이브러리를 배웠었는데, 이 함수들은 각 넣는 것마다 특징이 있다고 하니까 참고하면 좋을 거 같아서 넣어둔다.
[𝟐𝟓.𝟎𝟑.𝟏𝟏] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟓
0. 개요오늘 계속 미루고 미뤄왔던 파이썬 4~5주차의 강의 내용을 정리해보려고 한다. (+문제 푼거 일부 정리)1. 파이썬 4주차 강의 정리 (심지어 1번 다시 들었다.) 1) 파이썬 함수 내용개념함수 =
bom-rosy.tistory.com
그래서 일반적으로 라이브러리의 import 는 다음과 같이 작성한다.
import pandas as pd
df(데이터 프레임의 준말) = pd.read(읽기)_csv('파일의 경로')
import time
from PIL import image
3. 판다스를 활용한 기능
(1) DF(data frame, 데이터 프레임, 테이블) 만들기
## pandas 라이브러리를 활용한 데이터 프레임 만들기 = list 활용
data 1 = [['Kim',30],['Park',23],['Min',45]]
df4 = pd.DataFrame(data1, colums=['Name','Age'] -----> 대소문자 구분
## pandas 라이브러리를 활용한 데이터 프래임 만들기 = Dictionary 활용
data2 = {'Name' : ['Kim','Park','Min'],'Age' : [30,23,45]}
df5 = pd.DataFrame(data2)
(2) Csv 파일을 통한 테이블 로드
## pandas 라이브러리를 활용한 csv 파일 읽기
df = pd.read_csv("파일 이름" 혹은 "파일 경로")
ex) csv 파일 이름 #E-commerce
df = pd.read_csv("E-commerce")
(3) 테이블 확인하기
display(df, df2, df3) ➡️ 원하는 데이터 프레임 넣기
or
df ➡️ 하나의 테이블에는 display를 쓰지 않아도 괜찮다.
----------------------------------------------------------------------------
df.head() ➡️ 처음 5줄만 출력한다.
df.tail() ➡️ 마지막 5줄만 출력한다.
(4) 테이블 구조 파악하기
len(df), len(df2), len(df3)
## 각 데이터프래임(테이블)의 행(가로) 길이 파악
➡️SQL 의 count 랑 동일한 기능
- 테이블의 데이터 구조를 파악하는 다양한 방법
## shape : 테이블의 행과 열의 갯수를 반환
## dtypes : 테이블 내 칼럼타입(문자형, 숫자형, 배열 등) 확인
## columns : 테이블 내의 칼럼 확인
## values : 테이블 내 각 행들의 배열 형태로 확인
df = pd.DataFrame([[1,'A',3.1], [4,'B',6.2], [7,'C',9.3]],
index=['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3'])
print(df)
#dtype
result = df.dtypes
print(result)
#shape
result = df.shape
print(result)
#columns
result = df.columns
print(result)
#values
result = df.values
print(result)





## colums.to_list() : 테이블 칼럼을 리스트로 확인하기
## info() : 테이블 구조 확인하기, 칼럼의 타입, 데이터 타입 확인
## T : 테이블 행렬 전환
##describe() : 전체 행 갯수, 평균, 표준편차, 최솟값, 사분위수, 최댓값 확인
df.columns.to_list()
df.info()
df.T
df.describe()



- 테이블 결측치 확인하기
df.isna().sum()
df.isnull().sum()
➡️SQL 의 형식과 비교
select count(*) ----> 모든 행을 계산
from tablue
where 칼럼 is null

일단은 해당 데이터 프레임, 테이블에는 결측치가 없어서 확인이 불가능하다.
- 특정 칼럼 1개 가져오기
1. 속성 사용
df.columns EX) df.카테고리 / df.나이 ....
2. [] 연산자 사용
df['columns'] EX) df['카테고리'] / df['나이']
3. iloc 사용
df.iloc[:,n]
➡️ : 는 모든 행을 가져오겠다는 의미
➡️ 4 인텍스 번호 n번째를 가져오겠다는 의미
- 틀정 칼럼 여러개 가져오기
1. [[]] 연산자 사용하기
➡️ 단, [] 하나 사용하면 결과값이 series 로 반환되어 key error(키값으로 봄)가 발생,
[[]] 는 dataframe 으로 반환되어 에러나지 않음
df.[['이름','나이']] ➡️ 주의! 2개 이상은 불가능함
2. iloc 사용
df.iloc[:,[x,y]]
➡️ : 는 모든 행을 가져오겠다는 의미
➡️ [x,y]는 인덱스 번호 x번, y번 칼럼들을 가져오겠단으 의미
- 특정 칼럼 버리기
#index 를 drop(제거)하려면 axis=0 으로 설정, 칼럼을 drop(제거) 하려면 axis=1 설정
df = df.drop(['없앨 칼럼: 몇번째'], axis =1)
df = df.drip([3], axis =0)
단, 위의 [[]]와 [()] 가 서로 다르기 때문에 이를 참고해야한다.
- 조건에 부합하는 데이터 가져오기
조건절에는 SQL의 WHERE 과 동일하며, 파이썬에서도 WHERE 을 사용해서 출력한다.
혹은 조건을 명명해서 필요한 것만 가져오거나, .loc 이나 df만을 사용해서 이를 가져올 수 있다.
1. 1개의 조건
➡️ 조건에 만족하는 행은 정상 출력, 아닌 행은 NAN(결측치)로 반환
EX)
df.where(df['원하는 칼럼']+조건)
df.where(df['Age']>40)
➡️ 데이터 프레임명 [조건]을 사용하면 만족하는 행만 필터링 가능
2. 다중 조건
➡️ (()) 혹은 .loc 혹은 df 사용
EX)
mask = ((df['Age']>40) & (df['Gender']=='Male))
삭제시 df[mask]
df = df.loc[df['Age']>40]
- 테이블 그루핑
SQL 을 통해서 비교하기 및 구문 확인
예제 1)
1. SQL
SELECT gender, count(customer_ID)
FROM df
GROUP BY gender
2. Python
df.groupby('gender')['Customer_ID'].count()
데이터테이블.groupby('group by 할 칼럼')--이 사이는 점 없음--['같이 볼 셀'].count() --> 세기
예제 2)
1. SQL
SELECT gender,location,count(customer_id)
FROM df
GROUP BY gender,location ---> select 에서 사용하는 함수들을 group by 로 데려올 수 있음
2. Python
df.groupby(['gender','location'])['customer_id'].count()
데이터 테이블.groupby(['group by 하는 모든 칼럼'])<-- 점 없음 -->['세야할 칼럼']함수
예제 3)
1. SQL
SELECT location, count(distinct age)
FROM df
GROUP BY location
2. Python
df.groupby('location')['age'].nunique()
데이터 테이블.group by.('정렬할 칼럼')['셀 함수'].함수()
nunique 는 고유한 값을 가지는 함수
## count 는 중복을 제거하지 않고, 중복을 포함해서 모두 세며, unique 는 중복을 제거한다.
unique 는 distinct count 와 유사함
예제 4)
1. SQL
SELECT location, count(distinct age) asd cnt
FROM df
GROUP BY locaiton
ORDER BY cnt desc ;
2. Python
df.groupby('location')['age'].count().sort_values(ascending=False)
데이터 테이블.group by('그룹바이 하는 칼럼')<--점 없음-->['함수 적용할 칼럼'].함수.sort_value(Ture or False)
ascending 은 오름차순과 내림차순을 결정하는 인수로
➡️ Ture = 오름차순 ➡️ False = 내림차순
sort_value 는 특정 칼럼의 값을 정렬하는 것 sort_value (오름차순 = True. 내림차순 = False)
일단은 1회차 라이브세션때 해야했던거 다 했고, 다음 라이브세션 녹음 들어오면 그거 정리해야겠다.
내일은 QCC 가 있기 떄문에 일단 문제풀이가 필요하면 하고, ADsP 강의를 계속 못듣고 있어서 걱정이다. 미루지 말고 차근차근 배워야겠다.
'𝐓𝐈𝐋 (𝐅𝐨𝐫 𝐂𝐚𝐦𝐩) > 𝐂𝐎𝐃𝐈𝐍𝐆 (𝐒𝐐𝐋, 𝐏𝐘𝐓𝐇𝐎𝐍)' 카테고리의 다른 글
[𝟐𝟓.𝟎𝟑.𝟏𝟒] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟗 (0) | 2025.03.17 |
---|---|
[𝟐𝟓.𝟎𝟑.𝟏𝟒] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟖 (0) | 2025.03.14 |
[𝟐𝟓.𝟎𝟑.𝟏𝟐] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟔 (0) | 2025.03.12 |
[𝟐𝟓.𝟎𝟑.𝟏𝟏] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟓 (0) | 2025.03.11 |
[𝟐𝟓.𝟎𝟑.𝟏𝟎] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟒 (0) | 2025.03.10 |