前提・実現したいこと
pandasで週ごとの合計値をデータフレームとして作成した上で、
特定の行を削除しようとしています。
出力
2017-01-01 1000 2017-01-08 3000 2017-01-15 5000 2017-01-22 2000 2017-01-29 2000 ... 2017-12-31 1000
発生している問題・エラーメッセージ
「2017-12-31」の行を削除しようとしたところ、以下のエラーが出ました。
行に数字のインデックスがないので、名称で行を指定して削除しようとしましたが、
できなかったので、この場合はどのように修正するのが適切でしょうか。
ValueError Traceback (most recent call last) <ipython-input-79-072cce345204> in <module>() ----> 1 weekly = weekly.drop('2017-12-31') ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/pandas/core/generic.py in drop(self, labels, axis, level, inplace, errors) 2159 new_axis = axis.drop(labels, level=level, errors=errors) 2160 else: -> 2161 new_axis = axis.drop(labels, errors=errors) 2162 dropped = self.reindex(**{axis_name: new_axis}) 2163 try: ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/pandas/core/indexes/base.py in drop(self, labels, errors) 3622 if errors != 'ignore': 3623 raise ValueError('labels %s not contained in axis' % -> 3624 labels[mask]) 3625 indexer = indexer[~mask] 3626 return self.delete(indexer) ValueError: labels ['2017-12-31'] not contained in axis
該当のソースコード
python
1import pandas as pd 2import numpy as np 3import math 4 5weekly = df.set_index(1).resample("D").sum() 6weekly = weekly.drop('2017-12-31')
weekly.head()で出力したもの
1 2017-01-01 1000 2017-01-08 3000 2017-01-15 5000 2017-01-22 2000 2017-01-29 2000 ... 2017-12-31 1000
ご回答を受けて試したこと
python
1weekly = df.set_index(1).resample("D").sum() 2remove = weekly.loc['2017-12-31'] 3weekly.drop(remove.index)
エラー文
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-16-7fa422054348> in <module>() 1 remove = weekly.loc['2017-12-31'] ----> 2 weekly.drop(remove.index) ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/pandas/core/generic.py in drop(self, labels, axis, level, inplace, errors) 2159 new_axis = axis.drop(labels, level=level, errors=errors) 2160 else: -> 2161 new_axis = axis.drop(labels, errors=errors) 2162 dropped = self.reindex(**{axis_name: new_axis}) 2163 try: ~/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/site-packages/pandas/core/indexes/base.py in drop(self, labels, errors) 3622 if errors != 'ignore': 3623 raise ValueError('labels %s not contained in axis' % -> 3624 labels[mask]) 3625 indexer = indexer[~mask] 3626 return self.delete(indexer) ValueError: labels [ 4 10 13 14] not contained in axis
補足情報(FW/ツールのバージョンなど)
Python 3.6.0 :: Anaconda 4.3.0
回答1件
あなたの回答
tips
プレビュー