質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1437閲覧

pandasで特定の行を削除するときのエラーについて

退会済みユーザー

退会済みユーザー

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2018/08/15 01:49

編集2018/08/15 03:29

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wakame

2018/08/15 02:27

weekly.head()で出力した結果を質問に追記してもらえますか。
退会済みユーザー

退会済みユーザー

2018/08/15 03:20

ご質問いただきましてありがとうございます。追記させていただきました。
guest

回答1

0

ベストアンサー

投稿2018/08/15 02:51

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/15 03:23

ご回答いただきましてありがとうございます。 ご提案を試させていただきましたが、他のエラーが出てしまい、実行できませんでした。 詳細につきましては、質問に追記させていただきましたので、お手数おかけしますが、ご確認いただけますと幸いです。
t_obara

2018/08/15 03:36

単純なデータを利用して試した時の入力データと、remove結果を提示されると回答を得られやすいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問