🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

Q&A

解決済

1回答

5045閲覧

dropメソッドを用いて、変数以降の全ての行の削除

SnowBerryTart

総合スコア19

Python 3.x

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

0グッド

0クリップ

投稿2019/11/29 02:55

前提・実現したいこと

指定したインデックス以降の行にあるデータを削除し、その保存を行いたいです。
また、それを1つずつインデックスを増やしながら行いたいです。
そこでfor文を用いて、dropの中に変数を入れてみたのですが、上手くいきません。
間違いがわかる方がいらっしゃいましたら、よろしくお願いいたします。

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

File "<ipython-input-41-5271bf27d6da>", line 23 df_2 = df_1.drop([i:]) ^ SyntaxError: invalid syntax

該当のソースコード

for i in range(index, len(df_1.index)): df_2 = df_1.drop([i:]) #保存 df_2.to_csv('hoge_{}.csv'.format(i))

試したこと

drop内の[]の削除

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1import pandas as pd 2 3df = pd.DataFrame({'value': range(10)}, index=range(0,20,2)) 4# value 5#0 0 6#2 1 7#4 2 8#6 3 9#8 4 10#10 5 11#12 6 12#14 7 13#16 8 14#18 9 15 16# index=6 以降を削除 17df.drop(df.loc[6:].index) 18# value 19#0 0 20#2 1 21#4 2 22 23# 6行目 以降を削除 24df.drop(df.iloc[6:].index) 25# value 26#0 0 27#2 1 28#4 2 29#6 3 30#8 4 31#10 5 32 33# ループで処理 34for i in range(10): 35 ret = df.drop(df.iloc[i:].index)

投稿2019/11/29 06:55

magichan

総合スコア15898

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

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

SnowBerryTart

2019/12/02 02:19

お返事遅くなり申し訳ございません。 ご提示いただいたコードでやりたことが実装できました。 もし良かったら、df.iloc[].indexにしないといけない理由を教えて頂けないでしょうか?
magichan

2019/12/02 08:47

DataFrame.drop() にて複数行の削除を行う場合、パラメータとしては削除する行のラベル値のリストを df_1.drop([3,4,5]) のように渡す必要がありますので、質問のコードのように df_1.drop([i:]) スライスにて指定することは残念ながらできません。 そこで、まずは DataFrameを実際にスライス結果のIndex値(のリスト)を df_1[i:].index のように求めて、この結果を drop() のパラメータとして渡すことで実現しております。
SnowBerryTart

2019/12/02 23:18

一段階踏む必要があったのですね、非常に納得できました。 丁寧な解説ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問