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

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

ただいまの
回答率

88.78%

Python エラー

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,352

konda

score 24

import sys, csv, operator
import pandas as pd

df = pd.read_csv('analyze2.csv', sep=",")


for i in range(0,67000):
    value = df.iloc[i,0]#i行目の左列の取得
    #print(value)
    if value == 1:
        method1 = df.iloc[i,1] #i行目の中央列の取得
        for c in range(1,67000):
            method2 = df.iloc[i+c,1] #i+c行目の中央列の取得
            if method1 == method2:
                copy = df.copy(i+c) #i+c行目のデータをコピー
                df = df.drop(i+c) #i+c行目のデータを元データから削除
                redf = pd.concat([df[:i],copy])#結合(dfデータのi行目まで+コピーした行列)
                newdf = pd.concat([redf,df[i+2:]])#結合(redf+dfデータのi+2行目以降)
            else:
                continue
            break

    else:
        continue
    continue
for s in range(0,67000):
    print(newdf.iloc[s,0])

以下エラー内容です。

Traceback (most recent call last):
  File "sort.py", line 19, in <module>
    df = df.drop(i+c) #i+c行目のデータを元データから削除
  File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 3940, in drop
    errors=errors)
  File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 3780, in drop
    obj = obj._drop_axis(labels, axis, level=level, errors=errors)
  File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 3812, in _drop_axis
    new_axis = axis.drop(labels, errors=errors)
  File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 4965, in drop
    '{} not found in axis'.format(labels[mask]))
KeyError: '[708] not found in axis'

どこを修正すれば良いか調べても分からない状況です。よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

DataFrameの最大行数を超えた行を指定したため、その行が見つからないというエラーが出ています。
最大行数を超えないように修正する必要があります。

追記

df = pd.read_csv('test.csv', sep=",")
print(df)
#    aaa  bbb
# 0  ccc  ddd
# 1  eee  fff
# 2  ggg  hhh
# 3  iii  jjj
# 4  kkk  lll
# 5  mmm  nnn

df = df.drop(2)
print(df)
# 行番号の2が削除される
#    aaa  bbb
# 0  ccc  ddd
# 1  eee  fff
# 3  iii  jjj
# 4  kkk  lll
# 5  mmm  nnn

print(df.iloc[2,0])
# 行番号の2は削除されたのでエラーになると思いきやならない
# iii
#    aaa  bbb
# 0  ccc  ddd  0行目
# 1  eee  fff  1行目
# 3  iii  jjj   2行目 ←ここの値が取得される
# 4  kkk  lll
# 5  mmm  nnn

print(df.drop(2))
# しかし行番号の2はないのでエラーになる
# KeyError: '[2] not found in axis'

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/19 11:35

    試していただくまでしていただきありがとうございます。
    66999行目まであります。参考までに.infoの情報を以下に載せます。

    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 66999 entries, 0 to 66998
    Data columns (total 3 columns):
    1 66999 non-null int64
    convert orig/00000002.png -crop 1280x600+0+0 crop/00000002.png 66999 non-null object
    1558070265.643368475 66999 non-null float64
    dtypes: float64(1), int64(1), object(1)
    memory usage: 1.5+ MB

    キャンセル

  • 2019/05/19 13:21

    ilocで指定する行番号とdropで指定する行番号に違いがあるようでそのせいでエラーになっているものと思われます。
    回答に追記としてコードを入れておきました。

    キャンセル

  • 2019/05/20 12:20

    ありがとうございます。試してみます。

    キャンセル

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

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る