スポンサーリンク
range()で範囲指定して行を削除
まずは、csvファイルを読み込んでDataFrameを作成します。
1 2 3 |
import pandas as pd data = pd.read_csv('in.txt', names=('id', 'value')) |
DataFrame.drop()で行を削除できます。
例えば、1行目を削除する場合は、下記のように書けます。
1 |
dataDelete = data.drop(1) |
DataFrame.drop()は、range()のリスト形式で範囲指定できます。
0-1行目を削除する場合です。
1 |
dataDelete = data.drop(range(2)) |
1-2行目を削除する場合です。
1 |
dataDelete = data.drop(range(1, 3)) |
DataFrame.iloc()で範囲指定して箇所を抽出して、それ以外の行を削除することもできます。
0-1行目以外を削除する場合です。
1 |
dataDelete = data.iloc[range(2), :] |
スポンサーリンク
DataFrame.head()とDataFrame.tail()で範囲指定した以外の行を削除
DataFrame.head()で範囲指定した以外の行を削除することもできます。
先頭の2行以外を削除する場合です。
1 |
dataDelete = data.head(2) |
DataFrame.tail()で範囲指定した以外の行を削除することもできます。
最後の2行以外を削除する場合です。
1 |
dataDelete = data.tail(2) |
サンプルコード
例えば、下記のin.txtがあったとします。
1 2 3 4 5 |
$ cat in.txt line1,1 line2,2 line3,3 line4,4 |
下記がサンプルコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$ 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) |
下記が実行結果になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$ ./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 |
スポンサーリンク