본문 바로가기
Study/CODE 3기 [파이썬으로 배우는 데이터 사이언스]

[5조 C5DE] 1, 2주차 스터디

by 24 인시환 2024. 5. 17.
작성자 : 박준현
진도 : 1주차 처음 ~ 실습 전까지

 

1주차에서는 그동안 배웠던 파이썬의 기초에 대해서 간단하게 복습해보는 시간을 가졌다.

boolean형 

 

불린형에서 가장 중요한 포인트는

"True == 1"

"False == 0"

인 것 같다.

 

주의) 문자열과 정수형 조심, 불린형의 True와 False모두 단어의 첫글자가 대문자임

 

즉 True는 1을 치환할 수 있는 것이다.

True + True = 2가 나옴을 확인할 수 있다.

>>> True + True

2

 

물론 True가 1을 , False가 0을 완전히 치환한다고 할 수는 없다.

왜냐면 자료형이 서로 다르기 때문.

하지만 자료형이 다른 점만 제외하면 서로 치환하여 사용이 가능하다!

 

>>> type(1) == type(True)

False

 

>>> if 1:
	print('True is one')
        
"True is one"

(위의 코드는 if True와 동일하기 때문에 항상 print된다.)

 

이처럼 boolean형은 1과 0으로 치환이 가능하다는 점을 사용하여 좀 더 다채로운 코딩이 가능해질 것 같다.

 

 

문자열과 리스트(string and list)

 

문자열과 리스트는 각각의 값이 인덱스를 가지고 있다는 점에서 공통점을 지니고 있다.

 

리스트는 물론이고, 문자열도 각각의 값이 각각의 인덱스를 지니고 있다! 

즉 리스트처럼 활용이 가능함.

>>> str = 'I am the best'
>>> for i in str:
	print(i)

I
a
m
t
h
e
b
e
s
t

즉 위와 같이 for문도 사용이 가능하다.

 

하지만 리스트와 문자열에는 큰 차이점이 존재한다.

리스트는 인덱싱을 통해 특정 인덱스의 값을 수정할 수 있지만, 문자열은 특정 인덱스의 수정이 불가능하다!

 

>>> str = 'I am the best'
>>> list_1 = [1, 2, 3, 4]
>>> list_1[0] = 3
>>> print(list_1)
[3, 2, 3, 4]

>>> str[0] = 1
#syntax error

 

위 점을 유의하여 문자열을 활용해야 한다.

 

 

 



 

- 작성자 : 김세언

- 범위 : ~ Dictionaries

 

문자열

# 포인트 : 리스트처럼 생각한다. 글자 하나하나가 상대적인 주소를 가짐!

# 문자열의 연산 ==> 문자열끼리만 가능! 문자와 숫자를 더하려고 하면 에러가 발생한다.

# 덧셈 기능을 이용해 문자열을 이어서 쓸 수 있다.
# 곱하기 기능을 이용해 문자열을 반복해서 이어붙일 수 있다.

 

# 문자열을 처리하는 다양한 내장함수가 있다.

 

 

# strip() - 문자열 사이의 양 옆 공백을 제거한다.

# split() - 공백으로 문자열을 분리한다.

 

# 슬라이싱으로 문자열의 일부를 가져오는 것도 가능하다! (리스트와 유사)

# startswith 를 사용하면 특정 문자로 시작하는지의 여부를 확인할 수 있다.

# in 을 사용하게 되면 특정 문자열을 포함하고 있는지 여부를 확인할 수 있다.

 

 

리스트

# 여러 값을 // 자료형에 상관없이
# 순서를 고려하여 (인덱스가 존재) // 하나의 변수에 할당 (시퀀스 자료형)
# 데이터가 많아지면 배열 [] 에 담아 관리하는 것.

# 변수명 = [value1, value2, value3, ...]

# 값에는 다양한 자료형을 포함할 수 있다.

# 인덱싱 - 리스트에 있는 값에 "접근"하기 위해, 이 값의 상대적인 주소를 사용
# 파이썬은 인덱싱을 0, 1, 2 순서로 할당한다. (마지막 원소는 -1)

# 슬라이싱 - 리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 "반환"


# 변수명 [시작인덱스:마지막인덱스:증가]
# 마지막 인덱스 - 1 까지 출력

# " ".join(리스트) 를 사용하면 리스트를 공백 문자열을 연결할 수 있다.

# in 을 사용하게 되면 리스트에 해당 데이터를 포함하고 있는지 여부를 확인할 수 있다.

 

 

딕셔너리

# dict 자료형 - key:value

# 키와 값을 가지는 자료형을 딕셔너리라 한다.

# 연관성 있는 데이터끼리는 딕셔너리에 잘 응집시켜서 관리한다.

 

 

# enumarate 함수

# 반복문을 사용할때 리스트의 순서값, 즉 인덱스의 정보가 필요한 경우가 있다.

# enumerate함수는 리스트의 원소에 순서값을 부여해주는 함수이다.

 

 

 


  • 작성자 : 인시환
  • 범위 : ~ series

 

판다스 라이브러리가 무엇일까?

판다스(Pandas)는 데이터 조작 및 분석을 위한 Python 라이브러리이다. 이 라이브러리를 사용하면 구조화된 데이터를 효율적으로 처리하고 조작할 수 있다.
 

Series

판다스의 Series는 1차원 배열로, 인덱스를 가지는 데이터의 리스트라고 생각할 수 있다. 각 요소는 인덱스를 통해 접근할 수 있다.

import pandas as pd

# 리스트로 Series 생성
data = [10, 20, 30, 40]
series = pd.Series(data)
print(series)

일정한 값을 가지는 시리즈를 생성했다.

0    10
1    20
2    30
3    40
dtype: int64

다음과 같이 출력된다.

# 인덱스로 접근
print(series['b'])  # 출력: 20

 
 

Dataframe

DataFrame은 2차원 데이터 구조로, 행과 열로 구성된 데이터 테이블이다. 우리가 자주 볼 수 있는 엑셀 스프레드시트와 유사한 형태이다. 

import pandas as pd

# 2차원 리스트로 DataFrame 생성
data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 열 이름을 지정하여 DataFrame 생성
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
print(df)

이를 통해 DataFrame을 생성했다.

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

다음과 같이 행과 열을 가지는 2차원 형태의 데이터로 출력된다.
 
 


 
 

  • 작성자 : 소정인
  • 범위 : subset~reshaping

 

Subset (일부 값만 불러오기)
# Rows 기준 예시
df[df.Length > 7]

#Columns 기준 예시
df[['width','length','species']]
*주의: 두 개 이상의 값을 불러 올때는 Dataframe 형태로 불러와야 합니다

ex) df['a','b'] -> 두 개 이상의 값을 불러올 때 Series 형태로 불러올 경우 키값 오류가 발생합니다

따라서 df[['a','b']] 인 Dataframe 형태로 불러와야 합니다​

 

Summerize Data

Categoricla 한 값의 빈도수를 구하는 방법입니다

df['a'].value_counts()
결과 : 

6        1
5        1
4        1
Name: a, dtype: int64

 

Reshaping

sort_values, drop

1) 'a'컬럼을 기준으로 정렬하기
df['a'].sort_values()
결과:
1        4
4        4
2        5
3        6
Name: a, dtype: int64

2) DataFrame 전체에서 'a'값을 기준으로 정렬하기
df.sort_values('a')
결과:
    a b c
1   4 7 10
4   4 9 10
3   5 8 11
2   6 9 12

3) 역순으로 정렬하기
df.sort_values('a', ascending=False)
결과:
    a b c
3   6 9 12
2   5 8 11
1   4 7 10
4   4 9 10

4) 'C' 컬럼 drop 하기
df=df.drop(['c'], axis=1)
df
결과:
    a b
1   4 7
2   5 8
3   6 9
4   4 9


작성자: 박지호
범위: 2.2 Group Data

Group by


한 컬럼값을 기준으로 다른 컬럼값을 계산할 수 있는 함수이다.

df.groupby([“a”])[“b”].mean()

위 예시의 경우, a 컬럼값을 기준으로 b 컬럼값의 평균을 구하는 식이다.
하나의 값을 기준으로 어떤 값의 평균값 등을 알고 싶을 때 groupby를 통해 손쉽게 알아낼 수 있다는 사실이 흥미로웠다.

Plotting


가지고 있는 데이터로 다양하게 시각화를 시도해볼 수 있다.
: 꺾은선, 막대 그래프, 밀도 함수 등

데이터 시각화를 해본 것은 처음이라 신기했다.