인덱스 활용, iloc, loc, 데이터 병합, 데이터 집계, 데이터 정렬
Unnamed 인덱스 없애기: index = False
df.to_csv('./newfile.csv', index = False)
Unnamed 인덱스 없애기: index_col=0
df.read_csv('./newfile.csv', index_col = 0)
loc[]: 특정 인덱스의 행에 접근
row = df.loc['idx2']
sort_index(): 인덱스를 기준으로 데이터프레임 정렬
sorted_df = df.sort_index()
set_index(): 특정 컬럼을 인덱스로 설정
df.set_index('컬럼명')
.index: 인덱스 확인하기
#리스트 형태를 활용해서 인덱스를 새로 입력할 수 있음.
data.index = ['1번' , '2번' , '3번']
컬럼명 바꾸기: rename()
df.rename(columns = {'컬럼명': '바꿀명'})
컬럼 생성
df['스포츠'] = '축구' → 전부 '축구'로 채워진 컬럼 생성
컬럼 삭제
del df['컬럼명']
.info()로 확인, df[df['B'].isna()] 형태로 확인df['A'].dtype, df.dtypesdf['A'].astype(str)df.iloc[0]
df.iloc[0:4]
df.iloc[0:7:2]
df.iloc[0::2] # 처음부터 끝까지 간격을 2로 해서 추출
df.iloc[0:2, 0:2] # 행, 열
와 같은 형태로 사용함.
컬럼 명으로 선택을 함.
iloc는 슬라이싱할 때 1:3 이면 3은 포함되지 않지만 loc는 'a':'e'일때 e를 포함함.


단일 조건
df[df['age'] >= 30]여러 조건
# 'age' 열에서 30세 이상이면서 'gender' 열이 'Male'인 행 필터링 # or의 경우 | 사용 df[(df['age'] >= 30) & (df['gender'] == 'Male')]조건에 따른 특정 컬럼
# 'age' 열에서 30세 이상인 경우의 'name' 열만 선택 df.loc[df['age'] >= 30, 'name']
isin()을 활용한 필터링# 'gender' 열에서 'Male' 또는 'Female'인 행 필터링 df[df['gender'].isin(['Male', 'Female'])]
pd.concat([df1, df4], ignore_index = True)merged_df = pd.merge(left_df, right_df, on='key', how='inner')
on: 병합 기준이 되는 열
how: inner, outer(합집합), left, right
집계할 수 없는 컬럼들이 있다면 집계할 수 있는 컬럼만 슬라이싱 해서 진행.
import pandas as pd # 샘플 데이터프레임 생성 data = { 'Category': ['A', 'B', 'A', 'B', 'A', 'B'], 'Value': [1, 2, 3, 4, 5, 6] } df = pd.DataFrame(data) # 'Category' 열을 기준으로 그룹화하여 'Value'의 연산 수행 grouped = df.groupby('Category').mean() grouped_sum = df.groupby('Category').sum() grouped_count = df.groupby('Category').count() grouped_max = df.groupby('Category').max() grouped_min = df.groupby('Category').min() grouped_first = df.groupby('Category').first() # 첫번째 등장하는 애들만 표현하겠다.
agg() 사용으로 여러 열에 대한 집계함수 적용.

# 피벗 테이블 생성: 날짜를 행 인덱스로, 카테고리를 열 인덱스로, 값은 'Value'의 합으로 집계 pivot = df.pivot_table(index='Date', columns='Category', values='Value', aggfunc='sum')
df.sort_values('Score') # 'Score' 열을 기준으로 오름차순 정렬 df.sort_values('Score',ascending=False) # 'Score' 열을 기준으로 내림차순 정렬 df.sort_values(by=['Score', 'Age'], ascending=[True, False]) # Score 기준으로 오름차순 한 뒤에 Age 기준으로 내림 차순 정렬 df.sort_index() # 인덱스를 기준으로 오름차순 정렬