【エラー解決】positional argument follows keyword argument


私がPythonを学習していたら"positional argument follows keyword argument"というエラーが発生した。SyntaxErrorと書いてあるので構文エラーだということがわかる。さてこのエラーの解決方法はどうするのだろうか。まず、私のコードと正解のコードを見比べてみよう。

my.py
#私のコード
plt.hist(df[df["y == 0"]]["x"], label="women 16years old", bins=100, range(140, 187), alpha=0.3, color="blue")
plt.hist(df[df["y == 0"]]["x"], label="men 16years old", bins=100, range(140, 187), alpha=0.3, color="green")
plt.xlabel("height [cm]")
plt.ylabel("num")
plt.legend();

そして、

correct.py
#正解のコード
plt.hist(df[df["y"] == 0]["x"], label="women 16years old", bins=100, range=(140, 187), alpha=0.3, color = "blue")
plt.hist(df[df["y"] == 1]["x"], label="men 16years old", bins=100, range=(140, 187), alpha=0.3, color="green")
plt.xlabel("height [cm]")
plt.ylabel("num")
plt.legend();

パッとみても違いがわからない。1行目の最初に注目していただきたい。

#私のコード
plt.hist(df[df["y == 0"]]["x"],
#正解のコード
plt.hist(df[df["y"] == 0]["x"],

ここからわかるように
df[df["y"] == 0]としなければならない。これは列["y"]の値が0であるということを表す。

以上が"positional argument follows keyword argument"というエラーが出てきた時の対処法の一例になる。