スポンサーリンク

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

スポンサーリンク