1. ホーム
  2. python

[解決済み] Python Pandas read_csv は行をスキップしてヘッダを保持します。

2023-04-01 03:33:19

質問

csvファイルのn行目をスキップして、1行目であるヘッダを残す方法がわからなくて困っています。

私がしたいことは、反復処理ですが、最初の行からヘッダーを維持することです。 skiprows は、ヘッダーをスキップされた行の後の最初の行にします。 これを行う最良の方法は何でしょうか?

data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)

どのように解決するのですか?

行番号のリストを skiprows には、整数の代わりに行番号のリストを渡すことができます。

関数に整数の10を与えることで、最初の10行をスキップしているだけです。

最初の0行目(ヘッダーとして)を残し、10行目までをスキップするには、次のように書きます。

pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))


を使って行をスキップする他の方法 read_csv

どの行をスキップするかを制御する主な方法は、次の2つです。 read_csv が使用するのは header または skiprows パラメータを使用します。

次のような1列のCSVファイルがあったとします。

a
b
c
d
e
f

以下の各例では、このファイルは f = io.StringIO("\n".join("abcdef")) .

  • すべての行を値として読み込む (ヘッダなし、デフォルトは整数)

    >>> pd.read_csv(f, header=None)
       0
    0  a
    1  b
    2  c
    3  d
    4  e
    5  f
    
    
  • 特定の行をヘッダーとして使用します(それ以前の行はすべてスキップします)。

    >>> pd.read_csv(f, header=3)
       d
    0  e
    1  f
    
    
  • MultiIndexを作成するヘッダとして複数行を使用する(最後に指定したヘッダ行より前の行を全てスキップする)。

    >>> pd.read_csv(f, header=[2, 4])                                                                                                                                                                        
       c
       e
    0  f
    
    
  • ファイルの先頭からN行をスキップします(スキップされない最初の行はヘッダです)。

    >>> pd.read_csv(f, skiprows=3)                                                                                                                                                                      
       d
    0  e
    1  f
    
    
  • 行のインデックスを与えて1つ以上の行をスキップします(スキップされない最初の行はヘッダです)。

    >>> pd.read_csv(f, skiprows=[2, 4])                                                                                                                                                                      
       a
    0  b
    1  d
    2  f