Python 7 - Pandas 2
pandas 두번째
팁
# 항 개수 세기
df.count()
# 그래프 그리기
df.plot()
.
# 위에서 아래로 (행방향) 정렬
df.stack()
# 왼쪽에서 오른쪽으로 (열방향) 정렬
df.unstack()
#index 취소
df.groupby("month", as_index = False)
.
# 모든 column 앞에 "duration_"추가하기
grouped.add_prefix("duration_")
.
# 인덱스 0부터 다시 새로 초기화 생성
df.reset_index()
.
여러가지 데이터를 handling 하는 과정
Groupby
.
df.groupby(묶음 기준 칼럼)[적용되는 칼럼].연산()
#ex)
df.groupby(["Team","year"])["Points"].sum()
.
groupby 추출
grouped = df.groupby("Team")
for name, group in grouped:
print(name)
print(group)
tuple 형태로 그룹의 key, value값 추출됨
groupby 다시 dataframe으로 보려면 .unstack()
.
특정 key값 가진 그룹의 정보만 추출가능
grouped.get_group
.
groupby apply 3유형
aggregation
요약된 통계정보를 추출해 줌
grouped.agg(sum)
grouped.agg(np.mean)
grouped['points'].agg([np.sum,np.mean,np.std])
#전체 index마다 apply하는 함수
df.describe()
.
transformation
해당 정보 변환해 줌
group 별로 연산할 때, 각각의 값에 영향을 줄 수 있게 한다.
# 숫자 제곱하는 transform
score = lambda x: (x**2)
grouped.transform(score)
# group의 max값
score = lambda x: (x.max())
grouped.transform(score)
.
filtration
특정 정보를 제거하여 보여줌 (검색할 때 사용)
#그룹별로 3개 이상인 그룹만 나타내기
df.groupby('Team').filter(lambda x: len(x) >=3)
.
hierarchical index
multi index에서 사용
h_index.index
h_index["Devils":"kings"]
h_index.unstack()
h_index.reset_index()
.
index - swaplevel
#index level 을 변경할 수 있음
h_index.swaplevel()
h_index.swaplevel().sortlevel(0)
.
sort
#지정 index에 따라 sort
h_index.sortlevel(1)
#value 에 따라 sort
h_index.sort_values
.
기본 연산 수행도 가능
h_index.sum(level=1)
h_index.std(level=0)
.
Pivot Table & Crosstab
.
Pivot Table
df.pivot_table(["duration"],
index = [df.month, df.item],
columns = df.network,
aggfunc = "sum",
fill_value = 0)
Crosstab
pd.crosstab(index = ,
columns = ,
values = ,
aggfunc = "first").fillna(0)
Merge & Concat
merge
두 dataframe 합병
# subject로 두 datafram 합침
pd.merge(df_a, df_b, on= "subject")
# 두 data의 column이름이 다를때
pd.merge(df_a, df_b, left_on = ["subject_a", "subject_b"])
# 왼쪽에 있는 column을 기준으로 합침
pd.merge(df_a, df_b, on = "subjet",
how = "left")
.
concat
#세로로 붙음
df_new = pd.concat([df_a,df_b])
#옆으로 붙음
df_new = pd.concat([df_a,df_b],axis = 1)
.
persistence
data loading 시 db connection 기능을 제공
import sqlite3
#database 연결 코드
conn = sqlite3.connect("./data/flights.db")
cur = conn.cursor()
cur.execute("select * from airlines limit 5;")
results = cur.fetchall()
results
xls(엑셀) 파일로 저장 가능
!conda install --y XlsxWriter
writer = pd.ExcelWriter("./data/df.xlsx",engine = "xlswriter")
df.to_excel(writer, sheet_name = "sheet1")
피클 형태로 저장
df.to_pickle("./data/df.pickle")
댓글남기기