#【やりたいこと】
文字列から、特定の記号(今回は、%20 )を区切り位置として、区切り位置前後の文字を抜き出したい
#【困っているところ】
狙った位置の文字がとりだせません。
どのようにコーディングすればよいかわからないため教えて頂けると助かります。
①以下の文字列取り出したいのですが、2行目がうまく取り出せません。
1行目:blew
2行目:blew(upが取り出される)
IN
1a = pd.DataFrame({"word": ["blew%20up", "blew%20up%20abc"]}) 2a["word2"]= a["word"].str.split("%20")[0] 3a
OUT
1 word word2 20 blew%20up blew 31 blew%20up%20abc up
②以下の文字列(最後の%20の後ろの文字列)取り出したいのですが、エラーが返ってきます。
1行目:up
2行目:abc
IN
1a = pd.DataFrame({"word": ["blew%20up", "blew%20up%20abc"]}) 2a["word2"]= a["word"].str.split("%20")[-1] 3a
以下のエラーが表示される
OUT
1--------------------------------------------------------------------------- 2KeyError Traceback (most recent call last) 3<ipython-input-81-df212ecf3883> in <module> 4 1 a = pd.DataFrame({"word": ["blew%20up", "blew%20up%20abc"]}) 5----> 2 a["word2"]= a["word"].str.split("%20")[-1] 6 3 a 7 8~\Anaconda3\lib\site-packages\pandas\core\series.py in __getitem__(self, key) 9 869 key = com.apply_if_callable(key, self) 10 870 try: 11--> 871 result = self.index.get_value(self, key) 12 872 13 873 if not is_scalar(result): 14 15~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_value(self, series, key) 16 4402 k = self._convert_scalar_indexer(k, kind="getitem") 17 4403 try: 18-> 4404 return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None)) 19 4405 except KeyError as e1: 20 4406 if len(self) > 0 and (self.holds_integer() or self.is_boolean()): 21 22pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_value() 23 24pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_value() 25 26pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() 27 28pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item() 29 30pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item() 31 32KeyError: -1
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/19 12:44