前提・実現したいこと
python3.9でpandasを使って生徒の抽選を行うシステムを作っています。生徒の情報と希望を.cvsからdataframeに読み込んで抽選をしています。
実現したいこととしては、複数回抽選を行うのですが、一度当選したことのある人の一覧をデータ(.csv)として保存してその人の当選確率を一定の確率だけ当選したことのない人より下げようとしていることです。
そのために、この2つのdateframeを比較して生徒の情報(3つ)が一致する行のindexを、生徒と情報の希望を読み込んだdateframeからlistへ取り出そうとしています。
扱うデータ
生徒と情報の希望を読み込んだdateframe=df
df
1 student_grade student_class student_number applied_class applied_class2 20 1 A 1 6A 5B 31 1 A 2 5B 5C 42 1 A 3 6C 6A 53 1 A 4 5C 6C 64 1 A 5 6B 5D 75 1 A 6 5B 6A 86 1 A 7 5B 5D 97 1 A 8 5B 6D 108 1 A 9 6D 6B 119 1 A 10 5B 5B 1210 1 A 11 6A 5D 1311 1 A 12 5B 6A 1412 1 A 13 5D 6D 1513 1 A 14 6B 5D 1614 1 A 15 6A 5B 1715 1 A 16 6D 5B 1816 1 A 17 5B 5C 1917 1 A 18 5C 6A 2018 1 A 19 6A 5D 2119 1 A 20 5B 6D 2220 1 A 21 6A 6B 2321 1 A 22 5B 6A 2422 1 A 23 6B 6A 2523 1 A 24 5B 5D 2624 1 A 25 6A 5B 2725 1 A 26 5D 5B 2826 1 A 27 5B 6C 2927 1 A 28 5B 5B 3028 1 A 29 6D 5B 3129 1 A 30 6C 5D 3230 1 A 31 6A 6B 3331 1 A 32 6D 6C 3432 1 A 33 5D 6A 3533 1 A 34 5B 6A 3634 1 A 35 5B 6C 3735 1 A 36 5D 5B 3836 1 A 37 6A 6B 3937 1 A 38 6B 6A 4038 1 A 39 6D 6C 4139 1 A 40 5B 6A
一度当選した人のdateframe=winners
winners
1 student_grade student_class student_number 20 1 A 3 31 1 A 15 42 1 A 26 53 1 A 30 64 1 A 32 75 1 A 33 86 1 A 35 97 1 A 38 108 1 A 39
試したソースコード(途中を抜いています)
python
1same_grade = df[df['student_grade'] == winners['student_grade']] 2same_class = same_grade[same_grade['student_class'] == winners['student_class']] 3same_all = same_class[same_class['student_number'] == winners['student_number']] 4list_of_winners = list(same_all.index)
一致しなければならない3つの要素それぞれについてdfのデータがwinnersにも含まれている行だけを取り出す操作をして、最後にindexをlistに入れようとした
エラー
ValueError: Can only compare identically-labeled Series objects
上記のようなエラーが発生しました
教えてほしいこと
このソースコードではダメな理由と、実現したいことを実現するためにはどのようなコードであれば良いのか教えてください
開発環境
windows10でspyderを使っています
追記
df
1 student_grade student_class student_number applied_class applied_class2 20 1 A 1 6A 5B 31 1 A 2 5B 5C 42 1 A 3 6C 6A 53 1 A 4 5C 6C 64 1 A 5 6B 5D 75 1 A 6 5B 6A 86 1 A 7 5B 5D 97 1 A 8 5B 6D 108 1 A 9 6D 6B 119 1 A 10 5B 5B 1210 1 A 11 6A 5D 1311 1 A 12 5B 6A 1412 1 A 13 5D 6D 1513 1 A 14 6B 5D 1614 1 A 15 6A 5B 1715 1 A 16 6D 5B 1816 1 A 17 5B 5C 1917 1 A 18 5C 6A 2018 1 A 19 6A 5D 2119 1 A 20 5B 6D 2220 1 A 21 6A 6B 2321 1 A 22 5B 6A 2422 1 A 23 6B 6A 2523 1 A 24 5B 5D 2624 1 A 25 6A 5B 2725 1 A 26 5D 5B 2826 1 A 27 5B 6C 2927 1 A 28 5B 5B 3028 1 A 29 6D 5B 3129 1 A 30 6C 5D 3230 1 A 31 6A 6B 3331 1 A 32 6D 6C 3432 1 A 33 5D 6A 3533 1 A 34 5B 6A 3634 1 A 35 5B 6C 3735 1 A 36 5D 5B 3836 1 A 37 6A 6B 3937 1 A 38 6B 6A 4038 1 A 39 6D 6C 4139 1 A 40 5B 6A 4240 1 B 1 6A 5B 4341 1 B 2 5B 5C 4442 1 B 3 6C 6A 4543 1 B 4 5C 6C 4644 1 B 5 6B 5D 4745 1 B 6 5B 6A 4846 1 B 7 5B 5D 4947 1 B 8 5B 6D 5048 1 B 9 6D 6B 5149 1 B 10 5B 5B 5250 1 B 11 6A 5D 5351 1 B 12 5B 6A 5452 1 B 13 5D 6D 5553 1 B 14 6B 5D 5654 1 B 15 6A 5B 5755 1 B 16 6D 5B 5856 1 B 17 5B 5C 5957 1 B 18 5C 6A 6058 1 B 19 6A 5D 6159 1 B 20 5B 6D 6260 1 B 21 6A 6B 6361 1 B 22 5B 6A 6462 1 B 23 6B 6A 6563 1 B 24 5B 5D 6664 1 B 25 6A 5B 6765 1 B 26 5D 5B 6866 1 B 27 5B 6C 6967 1 B 28 5B 5B 7068 1 B 29 6D 5B 7169 1 B 30 6C 5D 7270 1 B 31 6A 6B 7371 1 B 32 6D 6C 7472 1 B 33 5D 6A 7573 1 B 34 5B 6A 7674 1 B 35 5B 6C 7775 1 B 36 5D 5B 7876 1 B 37 6A 6B 7977 1 B 38 6B 6A 8078 1 B 39 6D 6C 8179 1 B 40 5B 6A 8280 1 C 1 6A 5B 8381 1 C 2 5B 5C 8482 1 C 3 6C 6A 8583 1 C 4 5C 6C 8684 1 C 5 6B 5D 8785 1 C 6 5B 6A 8886 1 C 7 5B 5D 8987 1 C 8 5B 6D 9088 1 C 9 6D 6B 9189 1 C 10 5B 5B 9290 1 C 11 6A 5D 9391 1 C 12 5B 6A 9492 1 C 13 5D 6D 9593 1 C 14 6B 5D 9694 1 C 15 6A 5B 9795 1 C 16 6D 5B 9896 1 C 17 5B 5C 9997 1 C 18 5C 6A 10098 1 C 19 6A 5D 10199 1 C 20 5B 6D 102100 1 C 21 6A 6B 103101 1 C 22 5B 6A 104102 1 C 23 6B 6A 105103 1 C 24 5B 5D 106104 1 C 25 6A 5B 107105 1 C 26 5D 5B 108106 1 C 27 5B 6C 109107 1 C 28 5B 5B 110108 1 C 29 6D 5B 111109 1 C 30 6C 5D 112110 1 C 31 6A 6B 113111 1 C 32 6D 6C 114112 1 C 33 5D 6A 115113 1 C 34 5B 6A 116114 1 C 35 5B 6C 117115 1 C 36 5D 5B 118116 1 C 37 6A 6B 119117 1 C 38 6B 6A 120118 1 C 39 6D 6C 121119 1 C 40 5B 6A 122120 1 D 1 6A 5B 123121 1 D 2 5B 5C 124122 1 D 3 6C 6A 125123 1 D 4 5C 6C 126124 1 D 5 6B 5D 127125 1 D 6 5B 6A 128126 1 D 7 5B 5D 129127 1 D 8 5B 6D 130128 1 D 9 6D 6B 131129 1 D 10 5B 5B 132130 1 D 11 6A 5D 133131 1 D 12 5B 6A 134132 1 D 13 5D 6D 135133 1 D 14 6B 5D 136134 1 D 15 6A 5B 137135 1 D 16 6D 5B 138136 1 D 17 5B 5C 139137 1 D 18 5C 6A 140138 1 D 19 6A 5D 141139 1 D 20 5B 6D 142140 1 D 21 6A 6B 143141 1 D 22 5B 6A 144142 1 D 23 6B 6A 145143 1 D 24 5B 5D 146144 1 D 25 6A 5B 147145 1 D 26 5D 5B 148146 1 D 27 5B 6C 149147 1 D 28 5B 5B 150148 1 D 29 6D 5B 151149 1 D 30 6C 5D 152150 1 D 31 6A 6B 153151 1 D 32 6D 6C 154152 1 D 33 5D 6A 155153 1 D 34 5B 6A 156154 1 D 35 5B 6C 157155 1 D 36 5D 5B 158156 1 D 37 6A 6B 159157 1 D 38 6B 6A 160158 1 D 39 6D 6C 161159 1 D 40 5B 6A 162160 2 A 1 6A 5B 163161 2 A 2 5B 5C 164162 2 A 3 6C 6A 165163 2 A 4 5C 6C 166164 2 A 5 6B 5D 167165 2 A 6 5B 6A 168166 2 A 7 5B 5D 169167 2 A 8 5B 6D 170168 2 A 9 6D 6B 171169 2 A 10 5B 5B 172170 2 A 11 6A 5D 173171 2 A 12 5B 6A 174172 2 A 13 5D 6D 175173 2 A 14 6B 5D 176174 2 A 15 6A 5B 177175 2 A 16 6D 5B 178176 2 A 17 5B 5C 179177 2 A 18 5C 6A 180178 2 A 19 6A 5D 181179 2 A 20 5B 6D 182180 2 A 21 6A 6B 183181 2 A 22 5B 6A 184182 2 A 23 6B 6A 185183 2 A 24 5B 5D 186184 2 A 25 6A 5B 187185 2 A 26 5D 5B 188186 2 A 27 5B 6C 189187 2 A 28 5B 5B 190188 2 A 29 6D 5B 191189 2 A 30 6C 5D 192190 2 A 31 6A 6B 193191 2 A 32 6D 6C 194192 2 A 33 5D 6A 195193 2 A 34 5B 6A 196194 2 A 35 5B 6C 197195 2 A 36 5D 5B 198196 2 A 37 6A 6B 199197 2 A 38 6B 6A 200198 2 A 39 6D 6C 201199 2 A 40 5B 6A 202200 2 B 1 6A 5B 203201 2 B 2 5B 5C 204202 2 B 3 6C 6A 205203 2 B 4 5C 6C 206204 2 B 5 6B 5D 207205 2 B 6 5B 6A 208206 2 B 7 5B 5D 209207 2 B 8 5B 6D 210208 2 B 9 6D 6B 211209 2 B 10 5B 5B 212210 2 B 11 6A 5D 213211 2 B 12 5B 6A 214212 2 B 13 5D 6D 215213 2 B 14 6B 5D 216214 2 B 15 6A 5B 217215 2 B 16 6D 5B 218216 2 B 17 5B 5C 219217 2 B 18 5C 6A 220218 2 B 19 6A 5D 221219 2 B 20 5B 6D 222220 2 B 21 6A 6B 223221 2 B 22 5B 6A 224222 2 B 23 6B 6A 225223 2 B 24 5B 5D 226224 2 B 25 6A 5B 227225 2 B 26 5D 5B 228226 2 B 27 5B 6C 229227 2 B 28 5B 5B 230228 2 B 29 6D 5B 231229 2 B 30 6C 5D 232230 2 B 31 6A 6B 233231 2 B 32 6D 6C 234232 2 B 33 5D 6A 235233 2 B 34 5B 6A 236234 2 B 35 5B 6C 237235 2 B 36 5D 5B 238236 2 B 37 6A 6B 239237 2 B 38 6B 6A 240238 2 B 39 6D 6C 241239 2 B 40 5B 6A 242240 2 C 1 6A 5B 243241 2 C 2 5B 5C 244242 2 C 3 6C 6A 245243 2 C 4 5C 6C 246244 2 C 5 6B 5D 247245 2 C 6 5B 6A 248246 2 C 7 5B 5D 249247 2 C 8 5B 6D 250248 2 C 9 6D 6B 251249 2 C 10 5B 5B 252250 2 C 11 6A 5D 253251 2 C 12 5B 6A 254252 2 C 13 5D 6D 255253 2 C 14 6B 5D 256254 2 C 15 6A 5B 257255 2 C 16 6D 5B 258256 2 C 17 5B 5C 259257 2 C 18 5C 6A 260258 2 C 19 6A 5D 261259 2 C 20 5B 6D 262260 2 C 21 6A 6B 263261 2 C 22 5B 6A 264262 2 C 23 6B 6A 265263 2 C 24 5B 5D 266264 2 C 25 6A 5B 267265 2 C 26 5D 5B 268266 2 C 27 5B 6C 269267 2 C 28 5B 5B 270268 2 C 29 6D 5B 271269 2 C 30 6C 5D 272270 2 C 31 6A 6B 273271 2 C 32 6D 6C 274272 2 C 33 5D 6A 275273 2 C 34 5B 6A 276274 2 C 35 5B 6C 277275 2 C 36 5D 5B 278276 2 C 37 6A 6B 279277 2 C 38 6B 6A 280278 2 C 39 6D 6C 281279 2 C 40 5B 6A 282280 2 D 1 6A 5B 283281 2 D 2 5B 5C 284282 2 D 3 6C 6A 285283 2 D 4 5C 6C 286284 2 D 5 6B 5D 287285 2 D 6 5B 6A 288286 2 D 7 5B 5D 289287 2 D 8 5B 6D 290288 2 D 9 6D 6B 291289 2 D 10 5B 5B 292290 2 D 11 6A 5D 293291 2 D 12 5B 6A 294292 2 D 13 5D 6D 295293 2 D 14 6B 5D 296294 2 D 15 6A 5B 297295 2 D 16 6D 5B 298296 2 D 17 5B 5C 299297 2 D 18 5C 6A 300298 2 D 19 6A 5D 301299 2 D 20 5B 6D 302300 2 D 21 6A 6B 303301 2 D 22 5B 6A 304302 2 D 23 6B 6A 305303 2 D 24 5B 5D 306304 2 D 25 6A 5B 307305 2 D 26 5D 5B 308306 2 D 27 5B 6C 309307 2 D 28 5B 5B 310308 2 D 29 6D 5B 311309 2 D 30 6C 5D 312310 2 D 31 6A 6B 313311 2 D 32 6D 6C 314312 2 D 33 5D 6A 315313 2 D 34 5B 6A 316314 2 D 35 5B 6C 317315 2 D 36 5D 5B 318316 2 D 37 6A 6B 319317 2 D 38 6B 6A 320318 2 D 39 6D 6C 321319 2 D 40 5B 6A
winners
1 student_grade student_class student_number 20 1 A 1 31 1 A 3 42 1 A 4 53 1 A 5 64 1 A 7 75 1 A 9 86 1 A 13 97 1 A 14 108 1 A 16 119 1 A 18 1210 1 A 30 1311 1 A 31 1412 1 A 32 1513 1 A 40 1614 1 B 3 1715 1 B 4 1816 1 B 10 1917 1 B 13 2018 1 B 14 2119 1 B 15 2220 1 B 17 2321 1 B 18 2422 1 B 24 2523 1 B 30 2624 1 B 36 2725 1 B 38 2826 1 B 40 2927 1 C 2 3028 1 C 4 3129 1 C 6 3230 1 C 10 3331 1 C 13 3432 1 C 14 3533 1 C 18 3634 1 C 21 3735 1 C 30 3836 1 C 36 3937 1 C 38 4038 1 D 1 4139 1 D 3 4240 1 D 4 4341 1 D 7 4442 1 D 13 4543 1 D 14 4644 1 D 18 4745 1 D 21 4846 1 D 23 4947 1 D 30 5048 1 D 33 5149 1 D 39 5250 2 A 1 5351 2 A 3 5452 2 A 5 5553 2 A 10 5654 2 A 14 5755 2 A 18 5856 2 A 21 5957 2 A 23 6058 2 A 30 6159 2 A 33 6260 2 A 37 6361 2 A 39 6462 2 A 40 6563 2 B 2 6664 2 B 3 6765 2 B 4 6866 2 B 9 6967 2 B 13 7068 2 B 15 7169 2 B 18 7270 2 B 19 7371 2 B 29 7472 2 B 30 7573 2 B 31 7674 2 B 32 7775 2 B 33 7876 2 B 37 7977 2 C 1 8078 2 C 4 8179 2 C 5 8280 2 C 15 8381 2 C 16 8482 2 C 17 8583 2 C 18 8684 2 C 19 8785 2 C 26 8886 2 C 30 8987 2 C 35 9088 2 D 3 9189 2 D 4 9290 2 D 5 9391 2 D 9 9492 2 D 10 9593 2 D 12 9694 2 D 15 9795 2 D 16 9896 2 D 18 9997 2 D 21 10098 2 D 25 10199 2 D 29 102100 2 D 30 103101 2 D 31 104102 2 D 32 105103 2 D 33 106
この二つのデータがそれぞれgrade6まであります
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/13 10:36 編集
2021/07/13 12:11
2021/07/13 14:03