前提・実現したいこと
ソースコード②ではエラーは発生せず正しく実行されるのに対し、①では下記エラーが発生してしまいます。ソースコード①、②では順番を入れ替えたのみで'str'や'int'によるデータ型の変換は行っていないのに、何故でしょうか。
エラーメッセージ
TypeError: '>=' not supported between instances of 'str' and 'int'
ソースコード①
Python
1import pandas as pd 2df=pd.read_csv("test.csv") 3 4df["美術"]=["68","73","82","77","94","96"] 5df.loc[6]=["G恵","90","92","94","96","92","98"] 6 7data_s=df[df["国語"]>=90] 8print("国語の点数が90点以上\n", data_s) 9 10data_c=df[df["数学"]<70] 11print("数学の点数が70点未満\n",data_c)
ソースコード②
Python
1import pandas as pd 2df=pd.read_csv("test.csv") 3 4data_s=df[df["国語"]>=90] 5print("国語の点数が90点以上\n", data_s) 6 7data_c=df[df["数学"]<70] 8print("数学の点数が70点未満\n",data_c) 9 10df["美術"]=["68","73","82","77","94","96"] 11df.loc[6]=["G恵","90","92","94","96","92","98"]
test.csvの中身
名前 国語 数学 英語 理科 社会
0 A太 83 89 76 97 76
1 B介 66 93 75 88 76
2 C子 100 84 96 82 94
3 D郎 60 73 63 52 70
4 E美 92 62 84 80 78
5 F菜 96 92 94 92 90
試したこと
ソースコード①で
data_s=df[df[int("国語")]>=90]とすると
invalid literal for int() with base 10: '国語'
data_s=df[int(df["国語"])>=90]とすると
TypeError: cannot convert the series to <class 'int'>
のエラーが発生します。
回答2件
あなたの回答
tips
プレビュー