

先週末よりPythonを始めたばかりの初心者です。

データを定期的に取り込み、定点的に分析するツールを作りたく、調べながら、その雛形を作成中です。詳しい人でしたら、すぐに原因がわかる内容かもしれませんが、お助けくださると感謝します。

### これまでに試したこと

エラーを潰しながら進んでおりますが、現コードを実行しますと、以下のエラーメッセージが出ます。

[code]

    File "<ipython-input-18-06795348b04f>", line 93
        model3 = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)
                                                                                         ^
    SyntaxError: invalid character in identifier
    
[/code]

### 現在のコード

[code]

    import pandas as pd
    #Pandas.ExcelFile でデータを読み込む
    input_book = pd.ExcelFile('FIFA19_data.xlsx')
    
    input_sheet_name = input_book.sheet_names
    num_sheet = len(input_sheet_name)
    print(input_sheet_name)
    print("sheet の数:", num_sheet)
    input_sheet_df = input_book.parse(input_sheet_name[0])
    
    #GK のデータのみを外す
    input_sheet_df = input_sheet_df[input_sheet_df['Position']!= "GK"]
    #最初の10行のみを表示する
    input_sheet_df.head(10)
    
    import numpy as np
    
    #データを読み込む
    age=input_sheet_df.Age #年齢
    overall=input_sheet_df.Overall #総合能力
    wage=input_sheet_df.Wage #給与
    PreferredFoot=input_sheet_df.PreferredFoot #利き足
    Reputation=input_sheet_df.Reputation #レピュテーション
    least_contract=input_sheet_df.least_contract #残りの契約年数
    crossing=input_sheet_df.Crossing #クロス精度
    Finishing=input_sheet_df.Finishing #フィニッシュ精度
    heading=input_sheet_df.HeadingAccuracy #ヘディング精度
    ShortPassing=input_sheet_df.ShortPassing #ショートパス精度
    Dribbling=input_sheet_df.Dribbling #ドリブルの精度
    Curve=input_sheet_df.Curve #カーブの精度
    FKAccuracy=input_sheet_df.FKAccuracy #FK の精度
    LongPassing=input_sheet_df.LongPassing #ロングパスの精度
    BallControl=input_sheet_df.BallControl #ボールコントロール
    Acceleration=input_sheet_df.Acceleration #飛び出し
    SprintSpeed=input_sheet_df.SprintSpeed #スプリントスピード
    Agility=input_sheet_df.Agility #アジリティ
    Reactions=input_sheet_df.Reactions #リアクション
    Balance=input_sheet_df.Balance #バランス
    ShotPower=input_sheet_df.ShotPower #シュートパワー
    stamina=input_sheet_df.Stamina #スタミナ
    Jumping=input_sheet_df.Jumping #ジャンプ
    Strength=input_sheet_df.Strength #ストレングス
    LongShots=input_sheet_df.LongShots #ロングシュート
    Aggression=input_sheet_df.Aggression #アグレッション
    Interceptions=input_sheet_df.Interceptions #インターセプト
    Positioning=input_sheet_df.Positioning
    Vision=input_sheet_df.Vision
    Penalties=input_sheet_df.Penalties
    Composure=input_sheet_df.Composure
    Marking=input_sheet_df.Marking
    StandingTackle=input_sheet_df.StandingTackle
    SlidingTackle=input_sheet_df.SlidingTackle
    
    #利用するパラメータを指定する
    equation_df2=pd.concat([wage, age, PreferredFoot, Reputation, least_contract, \
                            crossing, Finishing, heading, ShortPassing, Dribbling, Curve, FKAccuracy, \
                           LongPassing, BallControl, Acceleration, SprintSpeed, Agility, Reactions, \
                           Balance, ShotPower, stamina, Jumping, Strength, LongShots, Aggression, \
                           Interceptions, Positioning, Vision, Penalties, Composure, Marking, \
                           StandingTackle, SlidingTackle], axis=1)
    
    #被説明変数として利用するものを取り出す
    wage2 = pd.DataFrame(equation_df2.Wage)
    #被説明変数を抜き取る
    x_list2 = equation_df2.drop("Wage",1)
    
    from sklearn import preprocessing, linear_model
    import sklearn
    import seaborn as sns
    
    #データの整形を行う
    #データの標準化を行う
    sc=preprocessing.StandardScaler()
    sc.fit(x_list2)
    
    X=sc.transform(x_list2)
    
    #相関係数を確認する
    
    import matplotlib.pyplot as plt
    
    plt.figure(figsize=(30,24))
    sns.heatmap(x_list2.pct_change().corr(), annot=True, cmap='Blues')
    
    from sklearn import model_selection
    #学習データとテストデータに分割する
    #分割する割合は2:8 で作業する
    X_train, X_test, Y_train, Y_test = model_selection.train_test_split(x, wage, test_size=0.2, ramdom_state=0)
    
    from sklearn.tree import DecisionTreeClassifier
    
    #決定木分析を, X_train 値と Y_train 値に基づき行う
    model3 = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)　
    model3.fit(X_train, Y_train)
    
    print('正解率(train):{:.3f}'.format(model3.score(X_train, Y_train)))
    print('正解率(train):{:.3f}'.format(model3.score(X_test, Y_test)))
    
[/code]

### 読み込むデータ (Dropboxリンク)

<https://www.dropbox.com/s/41lap8qzcxez33o/FIFA19_data.xlsx?dl=0>


CC BY-SA 4.0
2021-02-18T03:02:35.383
74091
2021-12-07T01:06:05.543
2021-02-18T04:07:21.227
3060
43962
question
python python3 macos
SyntaxError: invalid character in identifier を解決したいです


問題のエラーは、単純にその行の末尾に全角空白が入っているからだと思われます。

[code]

    model3 = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)　
    
[/code]

他にもそうしたことが無いか確かめて修正してみてください。

* * *

ちなみにこの辺の記事を参考にして、ある程度自動的にソースコードを見易い表示・整形・エラー検出などをしてくれるようにすれば、時間と手間の短縮になるのでは？  
[MacでJupyter
Notebookに拡張機能を入れて使いやすくする](https://memowo.com/study/memopy/jupyter-notebook-
extensions/)  
[[作業効率化]
Jupyterの拡張機能を全部調べてみた](https://qiita.com/simonritchie/items/88161c806197a0b84174)  
[Jupyter
知っておくと少し便利なTIPS集](https://qiita.com/simonritchie/items/d7dccb798f0b9c8b1ec5)


CC BY-SA 4.0
2021-02-18T03:26:30.240
74092
2021-02-18T04:19:10.137
2021-02-18T04:19:10.137
26370
26370
74091
answer