본문 바로가기
Data Science/파이썬 기본문법

[Pandas] 기본 문법

by titaniumm 2020. 7. 26.

1. Dataframe, series?

import pandas as pd
list_tmp = [1,2,3]

#리스트를 통해 시리즈 생성
s1 = pd.core.series.Series([1,2,3])
s2 = pd.core.series.Series(['one','two','three'])

#데이터 프레임 생성
pd.DataFrame(data = dict(num=s1,word=s2))

DataFrame - 2차원

시리즈 - 각각의 콜롬

 

2. csv 파일 읽어오기

import pandas as pd
df = pd.read_csv('desktop/name.csv')
print(df) #전체 출력
df.head(2) #앞에서 부터 보여주기
df.tail(3) #뒤에서 부터 보여주기 


# 콤마가 아닌 TAP으로 분류가 되어있는 경우
df_tap = pd.read_csv('desktop/name_tap.csv',delimiter = 
                    '\t')
            
# column 이름이 따로 없는 경우
df = pd.read_csv('desktop/name.csv',header= None)
df.columns = ['name','age','job']
#한번에 처리 하기
pf = pd.read_csv("desktop/name.csv",header = None, names = ['job','age','name'])

 

3. 행,열 삭제 하기

#DataFrame 생성 방법
friends = [{'age' : 15,'job' :'student'},{'age':25, 'job':'developer'},{'age':30,'job':'teacher'}]
df = pd.DataFrame(friends,index = ['john','jenny','nate'], columns = ['age','job'])


#열 삭제 후 저장하는 두가지 방법
df.drop(['john','nate'],inplace = True)
#df = df.drop(['john','nate'])

#index로 삭제하는 방법
df = df.drop(df.index[[0,2]])

#특정 정보만 삭제
df = df[df.age>20]

# 컬럼 삭제하기
df = df.drop('age',axis = 1)

4. 행, 열 생성하기

#열 생성하기
df['salary'] = 0 
df['total'] = df['midterm'] + df['final']

#행 생성 및 추가하기
df2 = pd.DataFrame([
    ['ben',50,50]],
    columns = ['name','age','hi']
)
df.append(df2,ignore_index= True)

#numpy where 활용하여 조건에 따라 값 생성하기
import numpy as np
df['salary'] = np.where(df['job'] != "student","yes","no")


#나이에 따라 기호로 바꿔주기
def chage_age(row):
    if row > 20:
        return "adult"
    else:
        return "child"
        
df['grade'] = df.age.apply(chage_age)

#뽑아내기
data_list = [
    {
        'yyyy-mm-dd' : '2006-06-27'
    },
    {
        'yyyy-mm-dd' : '2006-06-27'
    }  
]
df = pd.DataFrame(data_list,columns= ['yyyy-mm-dd'])

def extract_year(row):
    return row.split('-')[0]
df['year'] = df['yyyy-mm-dd'].apply(extract_year)

5. map vs applymap

map은 컬럼별로 (즉 시리즈에) 적용할때 사용하고

applymap은 데이터프레임 전체에 모두 적용시키고 싶을때 사용한다.

import pandas as pd

#데이터 구조
data_list = [{'date':'2000-06-28'},
            {'date':'2002-09-24'},
            {'date':'2002-12-15'}]
df = pd.DataFrame(data_list,columns = ['date'])
df


#적용시킬 함수
def extract_year(date):
    return date.split('-')[0]
    
#apply와 비슷하게 사용
#map이용해 함수 변환
df['year'] = df['date'].map(extract_year)
df   

#또 다른 변환
df.job = df.job.map({'student':1,'developer':2,'teacher:':3})

#applymap 사용법
import numpy as np
df = df.applymap(np.around)

<참조>

https://www.youtube.com/watch?v=pFXipjh0ghw&list=PLVNY1HnUlO26Igldy2Q6Nb2LZbpQWTyle

댓글