파이썬에서 tips.corr() 작업을 하는 데 ValueError: could not convert string to float: 'No' 에러가 발생했다. 분명 tips에 있는 데이터셑의 숫자 부분만 상관계수 작업을 했느데, 왜 안되는 거지 ?
tips.corr() 작업
관련 블로그를 보면 tips.corr() 결과에 수치 부분만 작업하 결과를 보여 주었다. 그런데 안되었다.
tips.corr() 은 tips 데이터셑 속성간의 상관계수를 보여주는 기능이다.
아래 그림처럼 data.corr() 하면 상관계수가 나와 주었다.
tips.corr() 에러 원인
실행을 하면 나타나는 에러 메세지
ValueError: could not convert string to float: 'No'
를 가지고 원인을 찾으니, corr() 함수는 수치 속성을 대상으로 하기 때문이란다.
그러면 예전에는 왜 되었을까 ?
그래서 Help를 보았다.
tips.corr() 의 괄호에 커서를 두고 Shift + Tab 을 눌렀다. 그러면 이 함수에 대한 설명이 나오기 때문이다.
내용을 아래로 읽어가니, 2.0 버젼 이후 부터는 바뀌었다는 메세지가 나온다.
<메세지 내용>
Signature:
tips.corr(
method: 'CorrelationMethod' = 'pearson',
min_periods: 'int' = 1,
numeric_only: 'bool' = False,
) -> 'DataFrame'
Docstring:
Compute pairwise correlation of columns, excluding NA/null values.
. . .
numeric_only : bool, default False
Include only `float`, `int` or `boolean` data.
.. versionadded:: 1.5.0
.. versionchanged:: 2.0.0
The default value of ``numeric_only`` is now ``False``.
즉, 2,0,0 이후 부터 numeric_only = False 가 default 값이란다.
그래서 판다스 버젼을 확인해 보았다. 2.0.3 이다. 그래서 안되었던 것이었다.
print(pd.__version__)
>>> output: 2.0.3
tips.corr() 해결
결국 해결 했다. 파라메터를 추가하면 되었던 것이다.
tips.corr(numeric_only=True)
tips.corr(numeric_only=True)
>>> output
total_bill tip size
total_bill 1.000000 0.675734 0.598315
tip 0.675734 1.000000 0.489299
size 0.598315 0.489299 1.000000
결과는 잘 나온다. 이 데이터셑으로 heatmap을 그렸다.
sns.heatmap(tips.corr(numeric_only=True), annot=True)
plt.show()
total_bill과 tip의 관계는 양의 상관관계를 가지고 있었다. 반면 tip 과 size 와는 0.49 로선 상관관계가 거의 없었다. 아무래도 Tip은 전체 금액이 많아야 많아 지는 관계가 있음을 데이터로 증명할 수 있었다.
이렇게 파이썬에서 작업한 tips.corr() 의 Error "(ValueError: could not convert string to float: 'No' ) 는 tips.corr(numeric_only=True)로 해결을 했다. 그 결과 데이터로 Heatmap 까지 생성하게 되었다.
>> 같이 살펴보기
'파이썬 데이터분석' 카테고리의 다른 글
파이썬 Streamlit 의 cheat sheet - Display Data, Connect to data sources (2) | 2024.01.02 |
---|---|
파이썬 streamlit ModuleNotFoundError: No module named 'altair.vegalite.v4' (1) | 2023.12.29 |
파이썬 DataFrame.pivot() takes 1 positional argument but 4 were given 에러 (0) | 2023.11.30 |
파이썬 Tip - 함수 도움말 부르기 코멘트 처리 (1) | 2023.11.26 |
파이썬 데이터프레임 여러개를 한번에 출력하기 display (1) | 2023.11.26 |