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

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

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

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

Python 3.x

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

Q&A

解決済

2回答

1312閲覧

Pythonでデータ分析を行うときの行の削除について

退会済みユーザー

退会済みユーザー

総合スコア0

Jupyter

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

Python 3.x

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

0グッド

1クリップ

投稿2018/05/13 12:36

前提・実現したいこと

Pythonでデータ分析を行うときに特定の行を削除しようとしています。
以下の記事を参考にしています。
参考資料

発生している問題・エラーメッセージ

ValueError Traceback (most recent call last) <ipython-input-24-65058ff8e9e3> in <module>() ----> 1 summer = summer.drop("2017-10-01") ~/.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-10-01'] not contained in axis

該当のソースコード

以下のようにインデックスを指定して行を削除しようとしたところ上記のエラーが表示され、
行が削除できずに困っています。

python

1import pandas as pd 2import matplotlib.pyplot as plt 3summer = pd.read_csv("summer.csv", encoding="SHIFT_JIS") 4summer = summer.drop("2017-10-01")

補足情報(FW/ツールのバージョンなど)

Jupyter notebook 5.0.0

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

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

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

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

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

guest

回答2

0

ベストアンサー

"2017-10-01"がindexの中に存在していないのかと。考えられる可能性は、

  • 違う列がindexになっている
  • 単に指定をミスっている(違う日付だったとか文字列フォーマットが違うとか)
  • read_csvのときに文字列型からdatetime型等に変換されてしまっている(されましたっけ? 確認していません)

などなど、色々あると思うので、dtypeを見る、indexを確認する、といった作業をしていって、原因を突き止める必要があります。

ここを参考にやってみては。

Pandas のデータフレームを確認する – Python でデータサイエンス

投稿2018/05/13 14:36

hayataka2049

総合スコア30933

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

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

退会済みユーザー

退会済みユーザー

2018/05/13 21:59

datetime型で日時が指定されていたようです。
guest

0

dropのデフォルトの方向は列方向です。そのため、「2017-10-01」という列がないというエラーメッセージが示されています。
やりたいことは行の削除なので、dropのオプションパラメーターaxis=1を設定するとうまくいくはずです。

投稿2018/05/13 14:17

R.Shigemori

総合スコア3376

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

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

hayataka2049

2018/05/13 14:33 編集

axis=0で行の削除、axis=1で列の削除だと思います。デフォルトはaxis=0で、そのまま行の削除ができるようになっているはずです。
R.Shigemori

2018/05/13 15:04

あぁ、そうでした。適当な記憶で回答してはいけませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問