본문 바로가기

카테고리 없음

DATAFRAME 다루기

728x90

 

 

 

 

 

import pandas as pd
import numpy as np


#두가지 데이터로만 했습니다!
data = [['20230308', '삼천당제약', 55300],['20230309', '삼천당제약',55650], ['20230308', '코콤', 6380], ['20230309','코콤',6180]]
df = pd.DataFrame(data,columns=['business_date','issue_name_korean_abbrev','previous_day_close_price'])

print(df)
 



#먼저 business_date가 2023년3월8일인 행만 따로 분리한 dataframe을 만들어줍니다.
df_0308 = df[df['business_date']=='20230308']

print(df_0308)


#먼저 business_date가 2023년3월9일인 행만 따로 분리한 dataframe을 만들어줍니다.
df_0309 = df[df['business_date']=='20230309']

print(df_0309)




#따로 분리한 두 dataframe을 합치는데 (left = dataframe 1번, right= dataframe2번 "순서상관없음 그냥 대상 2개지정")
# 그 기준은 on ("issue_name_korean_abbrev") 이며,
# how : 합칠 때 모든 데이터를 버리지 않고 합칩니다. -> 합치는 방법에는 left쪽의 잔여데이터만 남기기 right만 남기기 등등이 있는데 outer는 전부다임
pd_merge = pd.merge(left = df_0308, right = df_0309, how="outer", on = "issue_name_korean_abbrev")

print(pd_merge)






# 합친 dataframe 에 change라는 새로운 "열"을 만드는데 그 곳에는 두 일자의 가격 차이를 저장합니다
pd_merge['change'] = pd_merge['previous_day_close_price_y'] - pd_merge['previous_day_close_price_x']


print(pd_merge)




#필요없는 열을 다 없애줍니다. 
pd_merge = pd_merge.drop('business_date_x', axis='columns')
pd_merge = pd_merge.drop('business_date_y', axis='columns')
pd_merge = pd_merge.drop('previous_day_close_price_x', axis='columns')
pd_merge = pd_merge.drop('previous_day_close_price_y', axis='columns')

print(pd_merge)

이제 차이값이 저장된 change열을 이용해서

pd_merge['원하시는 열 이름(전일대비퍼센트 등등)'] = pd['change'] 를 이용한 %로 변경하는 수식 

으로 하시면 원하시는 퍼센트 값으로 얻으실 수 있습니다! 

 

728x90