pandas 강의를 듣고 정리
Pandas 팬더스 데이터분석 기초 실습
✔ 기초적인 판다스! 데이터 프레임을 만들어보기
import pandas as pd
s1 = pd.core.series.Series([1, 2, 3])
s2 = pd.core.series.Series(['one', 'two', 'three'])
s3 = pd.DataFrame(data=dict(num=s1, word=s2))
print(s3)
✔ csv에서 불러오기, head / tail 명령어
csv는 쉼표로 구분되어있기 때문에 별도의 추가 파라미터 없이 불러올 수 있다.
import pandas as pd
df = pd.read_csv('data/friend_list.csv')
print(df)
print('')
print(df.head(2)) # 앞에서부터 불러오기, 파라미터 없으면 모든데이터
print('')
print(df.tail(2)) # 뒤에서부터 불러오기, 파라미터 없으면 모든데이터
✔ csv에서 불러오기, Tab 으로 구분된 파일의 경우?
pandas에게 delimiter(구분문자) 파라미터를 추가해서, 탭으로 구분됨을 알려주어야 한다.
import pandas as pd
df = pd.read_csv('data/friend_list_tab.txt', delimiter='\t')
print(df)
✔ 헤더(컬럼명)가 없는 데이터 불러오는 경우
pandas에게 header no 파라미터를 추가해서, 없음을 알려주어야 한다.
import pandas as pd
df = pd.read_csv('data/friend_list_no_head.csv', header= None)
print(df) # 이 경우엔 컬럼 네임이 없음
df.columns = ['name', 'age', 'job'] # 컬럼명을 지정해줌
print(df)
✔ 딕셔너리 형태의 데이터를 데이터 프레임으로 생성하자!
이 경우, 딕셔너리는 컬럼 순서가 보장되지 않으므로 순서가 필요한 경우엔 별도로 컬럼 순서를 명시해주어야한다
from_dict()
매서드
import pandas as pd
friend_dict_list = [
{'name' : 'John', 'age' : 25, 'Job' : 'student'},
{'name' : 'Nate', 'age' : 30, 'Job' : 'teacher'}
]
df = pd.DataFrame(friend_dict_list)
print(df.head(),'\n')
df = df[['age', 'name', 'Job']]
print(df.head())
✔ 위의 경우가 번거로울 경우엔 한번에 하기위해서
collections의 ordereddict 를 사용해야한다. (키의 순서를 보장)
import pandas as pd
from collections import OrderedDict
friend_ordered_dict = OrderedDict(
[
('name', ['John', 'Nate']),
('age', [25, 30]),
('job', ['student', 'teacher'])
]
)
df = pd.DataFrame.from_dict(friend_ordered_dict)
print(df.head(),'\n')
✔ 리스트 형태의 데이터를 데이터 프레임으로 생성하자!
from_records()
매서드
import pandas as pd
# 데이터가 담길 리스트를 생성한다.
friend_list = [
['John', 25, 'student'],
['Nate', 30, 'teacher']
]
# 컬럼명 정보가 담길 리스트를 생성한다.
column_name = ['name', 'age', 'job']
# friend 데이터 정보와 컬럼명(head) 정보가 마련됐으니
# 두 정보를 이용해서 데이터 프레임을 만들자
df = pd.DataFrame.from_records(friend_list, columns = column_name)
print(df,'\n')
import pandas as pd
# 데이터가 담긴 리스트
friend_list = [
['name', ['John', 'Nate']],
['age', [25, 30]],
['job', ['student', 'teacher']]
]
# friend 데이터 정보와 컬럼명(head) 정보가 마련됐으니
# 두 정보를 이용해서 데이터 프레임을 만들자
df = pd.DataFrame.from_dict(dict(friend_list))
print(df,'\n')
✔ index, 컬럼, 쿼리 형태로 필터링
by column condition
import pandas as pd
friend_list = [
['name', ['John', 'Jenny', 'Nate']],
['age', [25, 30, 30]],
['job', ['student', 'developer', 'teacher']]
]
df = pd.DataFrame.from_dict(dict(friend_list))
print(df,'\n')
#### index 로 필터링 하기 > 리스트 슬라이싱
print(df[1:3],'\n')
### loc 로 원하는 index 만 리스트에 넣어서 가져온다.
print(df.loc[{0,2}],'\n')
### by column condition > DB쿼리처럼 컬럼 데이터 조건에 따라 가져온다
# 특정 컬럼을 지정해서 가져옴
print(df[df.age > 25],'\n')
# 쿼리 형태로 가져옴
print(df.query('age>25'),'\n')
# 쿼리 형태이고 조건이 두가지
print(df[ (df.age > 25) & (df.name == 'Nate')])
✔ iloc 함수
import pandas as pd
friend_list = [
['John', 20, 'student'],
['Jenny', 30, 'developer'],
['Nate', 30, 'teacher']
]
df = pd.DataFrame.from_records(friend_list)
print(df, '\n')
# 특정 한가지 값을 가져옴
print(df.iloc[0, 2])
# 리스트 슬라이싱 활용해서 범위로 가져옴
print(df.iloc[:, 0:2])
by column name
import pandas as pd
friend_list = [
['name', ['John', 'Jenny', 'Nate']],
['age', [25, 30, 30]],
['job', ['student', 'developer', 'teacher']]
]
df = pd.DataFrame.from_dict(dict(friend_list))
print(df,'\n')
#### index 로 필터링 하기 > 리스트 슬라이싱
print(df[1:3],'\n')
### loc 로 원하는 index 만 리스트에 넣어서 가져온다.
print(df.loc[{0,2}],'\n')
### by column condition > DB쿼리처럼 컬럼 데이터 조건에 따라 가져온다
# 특정 컬럼을 지정해서 가져옴
print(df[df.age > 25],'\n')
# 쿼리 형태로 가져옴
print(df.query('age>25'),'\n')
# 쿼리 형태이고 조건이 두가지
print(df[ (df.age > 25) & (df.name == 'Nate')])