Seriesの文字列の文字を、内包表記により加工したいのですけれど、イメージ通りにいきません。ご教示のほど、よろしくお願いいたします。
python
1import pandas as pd 2foods = pd.Series(['イチジク','ニンジン','サンショ','シイタケ','ゴボウ']) 3foods 4 50 イチジク 61 ニンジン 72 サンショ 83 シイタケ 94 ゴボウ 10 11 12 13 14delate = ['ジク','ンジン','ショ','イタケ','ボウ'] 15 16for i in delate: 17 foods=foods.str.replace(i,'') 18 19print(foods) 200 イチ 211 ニ 222 サン 233 シ 244 ゴ 25[dtype: object] 26 27# 上記のfor文により出力されたものを、内包表記にて、やってみたいと思い、以下のように書いてみました。 28# がしかし、以下の通り、5回繰り返されてしまいます汗) 29 30count=[foods.str.replace(i,'')for i in delate] 31print(count) 32 33[0 イチ 341 ニ 352 サン 363 シ 374 ゴ 38dtype: object, 0 イチ 391 ニ 402 サン 413 シ 424 ゴ 43dtype: object, 0 イチ 441 ニ 452 サン 463 シ 474 ゴ 48dtype: object, 0 イチ 491 ニ 502 サン 513 シ 524 ゴ 53dtype: object, 0 イチ 541 ニ 552 サン 563 シ 574 ゴ 58[dtype: object] 59 60# 以下のようにすれば、たしかに、目標通りになるのですが.. 61# そうではなく、内包表記一発で、以下のような結果にしたいのです。 62 63print(count[0]) 64 650 イチ 661 ニ 672 サン 683 シ 694 ゴ 70dtype: object 71 72 73 74◎やってみたこと 75count=[foods = foods.str.replace(i,'')for i in delate] 76 77File "<ipython-input-30-635c7c8e453b>", line 1 78 count=[foods = foods.str.replace(i,'')for i in delate] 79 ^ 80SyntaxError: invalid syntax
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/26 09:25