pythonを使ってFIFA23の選手の総合値であるoverallと相関関係が高い項目を分析
Q&A
Closed
pythonを使ってFIFA23の選手の総合値であるoverallと相関関係が高い項目を分析しています。
実装中に下記のエラーが出ました。
恐らく文字列と数値が混在しているCSVの為、エラーが出ているのだと思いますが
解決方法がわかりません。教えてください。
発生している問題・エラー
Traceback (most recent call last):
File "C:/Users/afari/OneDrive/ドキュメント/fifa23_example12-1-4.py", line 31, in
corr = field_players.corr()
File "C:\Users\afari\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\frame.py", line 10704, in corr
mat = data.to_numpy(dtype=float, na_value=np.nan, copy=False)
File "C:\Users\afari\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\frame.py", line 1889, in to_numpy
result = self._mgr.as_array(dtype=dtype, copy=copy, na_value=na_value)
File "C:\Users\afari\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\internals\managers.py", line 1656, in as_array
arr = self._interleave(dtype=dtype, na_value=na_value)
File "C:\Users\afari\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\internals\managers.py", line 1715, in _interleave
result[rl.indexer] = arr
ValueError: could not convert string to float: 'L. Goretzka'
該当するソースコード
#総合値と相関がある項目をヒートマップで見る
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#CSVファイルを読み込む
df = pd.read_csv("CLEAN_FIFA23_official_data.csv")
#print(df.shape)
#(17660, 31) 選手数は17660、一選手にあたり31の項目がある。
#GK以外のポジションに絞る
field_players = df[df["Position"]!= 'GK']
#欠損値の項目がある場合はtrue,ない場合はFalseが表示される
print(df.isnull())
#欠損値がある項目の合計をカウントする
print(df.isnull().sum())
#「移籍金」、「年俸」、「市場価値」の項目を削る
money_drop_list = [
"Value(£)",
"Wage(£)",
"Release Clause(£)"
]
field_players = field_players.drop(columns=money_drop_list)
corr = field_players.corr()
print(corr)
#項目が多いので見やすいように画像サイズを大きくする
plt.figure(figsize=(30, 20))
#相関関数の値を項目に表示する
sns.heatmap(corr, square=True, annot=True)
よろしくお願いいたします。
