
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
작성한 코드 및 에러 메세지
오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
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) 단축키로 코드를 한 번에 선택할 수 있어요!
