スポンサーリンク
range()で範囲指定して行を削除
まずは、csvファイルを読み込んでDataFrameを作成します。
import pandas as pd data = pd.read_csv('in.txt', names=('id', 'value'))
DataFrame.drop()で行を削除できます。
例えば、1行目を削除する場合は、下記のように書けます。
dataDelete = data.drop(1)
DataFrame.drop()は、range()のリスト形式で範囲指定できます。
0-1行目を削除する場合です。
dataDelete = data.drop(range(2))
1-2行目を削除する場合です。
dataDelete = data.drop(range(1, 3))
DataFrame.iloc()で範囲指定して箇所を抽出して、それ以外の行を削除することもできます。
0-1行目以外を削除する場合です。
dataDelete = data.iloc[range(2), :]
スポンサーリンク
DataFrame.head()とDataFrame.tail()で範囲指定した以外の行を削除
DataFrame.head()で範囲指定した以外の行を削除することもできます。
先頭の2行以外を削除する場合です。
dataDelete = data.head(2)
DataFrame.tail()で範囲指定した以外の行を削除することもできます。
最後の2行以外を削除する場合です。
dataDelete = data.tail(2)
サンプルコード
例えば、下記のin.txtがあったとします。
$ cat in.txt line1,1 line2,2 line3,3 line4,4
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import pandas as pd data = pd.read_csv('in.txt', names=('id', 'value')) print(data) print("\n1行目を削除") dataDelete = data.drop(1) print(dataDelete) print("\n0-1行目を削除") dataDelete = data.drop(range(2)) print(dataDelete) print("\n1-2行目を削除") dataDelete = data.drop(range(1, 3)) print(dataDelete) print("\n0-1行目以外を削除") dataDelete = data.iloc[range(2), :] print(dataDelete) print("\n先頭の2行以外を削除") dataDelete = data.head(2) print(dataDelete) print("\n最後の2行以外を削除") dataDelete = data.tail(2) print(dataDelete)
下記が実行結果になります。
$ ./sample.py id value 0 line1 1 1 line2 2 2 line3 3 3 line4 4 1行目を削除 id value 0 line1 1 2 line3 3 3 line4 4 0-1行目を削除 id value 2 line3 3 3 line4 4 1-2行目を削除 id value 0 line1 1 3 line4 4 0-1行目以外を削除 id value 0 line1 1 1 line2 2 先頭の2行以外を削除 id value 0 line1 1 1 line2 2 最後の2行以外を削除 id value 2 line3 3 3 line4 4
スポンサーリンク