커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
피어슨 상관계수 구하는 코드에서 에러가 납니다.
[왕초보] ChatGPT 300% 활용하기 v0
2주차
북마크
방*민
댓글
3
추천
0
조회수
8
조회수
8
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.








작성한 코드 및 에러 메세지

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이import FinanceDataReader as fdr
import pandas as pd

# 삼성전자와 SK하이닉스 종목 코드
samsung_code = '005930'  # 삼성전자
skhynix_code = '000660'  # SK하이닉스

# FinanceDataReader를 이용하여 종가 데이터 가져오기
start_date = '2023-01-01'
end_date = '2023-12-31'

samsung_df = fdr.DataReader(samsung_code, start_date, end_date)[['Close']]
skhynix_df = fdr.DataReader(skhynix_code, start_date, end_date)[['Close']]

# 데이터프레임 합치기 (종목별로 열 이름을 변경하여 구분)
samsung_df.columns = ['Samsung Electronics']
skhynix_df.columns = ['SK Hynix']

merged_df = pd.concat([samsung_df, skhynix_df], axis=1)

# 결과 출력
print(merged_df)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

         Samsung Electronics  SK Hynix
Date                                     
2023-01-02                55500     75700
2023-01-03                55400     75600
2023-01-04                57800     81000
2023-01-05                58200     81400
2023-01-06                59000     83100
...                         ...       ...
2023-12-21                75000    140500
2023-12-22                75900    140600
2023-12-26                76600    140900
2023-12-27                78000    140400
2023-12-28                78500    141500

[245 rows x 2 columns]


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ




# 삼성전자와 하이닉스 종가 데이터를 데이터프레임으로 만듭니다.
data = pd.DataFrame(df)

# 피어슨 상관계수를 계산합니다.
corr = data.corr(method = 'pearson')

# 상관계수를 출력합니다.
print(corr)


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-15-d8fb8c5c9591> in <cell line: 5>()
      3 
      4 # 피어슨 상관계수를 계산합니다.
----> 5 corr = data.corr(method = 'pearson')
      6 
      7 # 상관계수를 출력합니다.

3 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py in corr(self, method, min_periods, numeric_only)
  10052         cols = data.columns
  10053         idx = cols.copy()
> 10054         mat = data.to_numpy(dtype=float, na_value=np.nan, copy=False)
  10055 
  10056         if method == "pearson":

/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py in to_numpy(self, dtype, copy, na_value)
   1836         if dtype is not None:
   1837             dtype = np.dtype(dtype)
-> 1838         result = self._mgr.as_array(dtype=dtype, copy=copy, na_value=na_value)
   1839         if result.dtype is not dtype:
   1840             result = np.array(result, dtype=dtype, copy=False)

/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py in as_array(self, dtype, copy, na_value)
   1730                 arr.flags.writeable = False
   1731         else:
-> 1732             arr = self._interleave(dtype=dtype, na_value=na_value)
   1733             # The underlying data was copied within _interleave, so no need
   1734             # to further copy if copy=True or setting na_value

/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py in _interleave(self, dtype, na_value)
   1792             else:
   1793                 arr = blk.get_values(dtype)
-> 1794             result[rl.indexer] = arr
   1795             itemmask[rl.indexer] = 1
   1796 

ValueError: could not convert string to float: 'Samsung Electronics to revamp home appliance lineup'




콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴