###実行したいこと
辞書のmapの列の出力をマップの種類ごとに数値を振り分けて分類する
**詳細説明;**map_type;新規の作成した列。map;元々含まれていた列の名前(この列に含まれる要素を数値に変更しようとしています)
前回このエラーについてお答え頂き無事その時は解決したのですが、、、、、
今回は、それ通りに行かなかったため質問させていただいた次第です。
エラーの行が見えにくくて申し訳ないです。
該当コードに#エラーが出ている行です。
と書いてある行がそうです。
###改善に向けた行動
前回、mapに関する欠陥値だということだったということで
isnullを使ってnull値を確認しました。
全ての値がFalesとなっています。
つまり出力から考えると、欠陥値によって出たエラーではないのかと考えています。
今回の
raise ValueError("Cannot convert non-finite values (NA or inf) to integer") ValueError: Cannot convert non-finite values (NA or inf) to integer
というエラーが他の原因によって引き起こす可能性はあるのでしょうか?ご教示頂けると幸いです。
###自分なりに考えたこと
1,一つの辞書に何度も変更を加えること自体不可能かと考え実行しようとしたコードを辞書を変更するための他のコードよりも上に持ってきました。→変化なし
2,他の辞書に渡した、置き換え数値と重なっていた場合エラーとなるのかと考え100、101としました→変化なし
3,念のためmapのみで辞書を指定しnull値の検索をしましたがありませんでした。。
4,新規の行の名前を変更してみました。→変化なし
###null値の確認
killed_by map match_id time victim_name kill_position_x kill_position_y 0 NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN NaN NaN NaN NaN NaN 3 NaN NaN NaN NaN NaN NaN NaN 4 NaN NaN NaN NaN NaN NaN NaN ... ... ... ... ... ... ... ... 13426343 NaN NaN NaN NaN NaN NaN NaN 13426344 NaN NaN NaN NaN NaN NaN NaN 13426345 NaN NaN NaN NaN NaN NaN NaN 13426346 NaN NaN NaN NaN NaN NaN NaN 13426347 NaN NaN NaN NaN NaN NaN NaN
###該当コード
python
1import pandas as pd 2import matplotlib.pyplot as plt 3import numpy as np 4import seaborn as sns 5from matplotlib.colors import ListedColormap 6import matplotlib.cm as cm 7 8df = pd.read_csv("csvまでのパス") 9#数値データでなくてはプロットできない。 10show_df = df.drop(['victim_position_x','victim_position_y','victim_placement','killer_placement','killer_name'],axis=1) 11#欠陥値の補足 12show_df['kill_position_x'] = show_df['killer_position_x'].fillna(show_df['killer_position_x'].mean()) 13show_df['kill_position_y'] = show_df['killer_position_y'].fillna(show_df['killer_position_y'].mean()) 14#欠陥値の削除 15show_df = show_df.drop(['killer_position_x','killer_position_y'],axis=1) 16print(show_df.isnull()) 17#日本語表記は検討 ソードオブショットガン,クロスボウ、グレネード、火炎瓶、フライパン、鎌、バール、マチェット 18#エラーが出ている行です↓ 19show_df['map_type'] = show_df['map'].replace({'ERANGEL':0,'MIRAMAR':1}).astype(int) 20 21show_df['gan_type'] = show_df['killed_by'].replace({'Punch':0,'Deagle':1,'P1911':2,'R45':3,'R1895':4,'P18C':5,'P92':6,\ 22 'Skorpion':7,'S12K':8,'S1897':9,'S686':10,'DBS':11,'Tommy Gun':12,\ 23 'Vector':13,'Micro UZI':14,'MP5K':15,'PP-19 Bizon':16,'UMP45':17,\ 24 'AUG':18,'G36C':19,'M16A4':20,'M416':21,'M762':22,'Mk47 Mutant':23,\ 25 'QBZ':24,'SCAR-L':25,'AKM':26,'GROZA':27,'M249':28,'DP-28':29,\ 26 'AWM':30,'Win94':31,'Kar98k':32,'M24':33,'mini14':34,'QBU':35,'Mk14':36,'SKS':37,\ 27 'SLR':38,'VSS':39,'Bluezone':40,'Down and Out':41,'Falling':42,'Grenade':43,'Hit by Car':44,'death.WeapSawnoff_C':45,'Mini 14':46,\ 28 'UMP9':47,'Machete':48,'Sickle':49,'Groza':50,'Crossbow':51,'Drown':52,'Uaz':53,'Pan':54,'RedZone':55,'Motorbike':56,'Buggy':57,\ 29 'death.ProjMolotov_DamageField_C':58,'Dacia':59,'Motorbike (SideCar)':60,'death.Buff_FireDOT_C':61,'Crowbar':62,'Van':63,'Pickup Truck':64,\ 30 'Aquarail':65,'Boat':66,'death.ProjMolotov_C':67,'death.PG117_A_01_C':68,'death.RedZoneBomb_C':69,'death.PlayerMale_A_C':70}).astype(int) 31 32two = print(show_df.head(10)) 33w = sns.pairplot(show_df[0:101],hue='killed_by') 34w.savefig('PUPG.png') 35plt.show() 36 37np.random.seed = 0 38 39#グラフプロット 40#グラフの範囲を指定 x=time y=gan_type 41xmin,xmax = 0,2000 42ymin,ymax = 0,45 43 44index_M416 = show_df[show_df["gan_type"]==21].index 45index_GROZA = show_df[show_df["gan_type"]==27].index 46 47fig,ax = plt.subplots() 48comp = plt.cm.RdBu 49comp_bright = ListedColormap(['#FF0000','#0000FF']) 50sc = ax.scatter(show_df.loc[index_M416,'time'], 51 show_df.loc[index_GROZA,''],color='r',label='GROZA',alpha=0.3) 52sc = ax.scatter(show_df.loc[index_GROZA],'')
###エラー
raise ValueError("Cannot convert non-finite values (NA or inf) to integer") ValueError: Cannot convert non-finite values (NA or inf) to integer
回答1件
あなたの回答
tips
プレビュー