【Pandas】read_csvでcsvファイルを読み込んだ際の読み込む列の指定方法[Python]

  • URLをコピーしました!
目次

Pandas

前回、lmfitでフィッティング精度を上げられるかもしれない4つの方法を紹介しました。

今回はPandasのread_csvでcsvファイルを読み込んだ際の読み込む列の指定方法を紹介します。

まずは読み込むcsvファイルをこんな感じに作成してみました。

この表で「dummy」と書かれているところが今回読み込みたくない行列です。

測定器なんかでは測定条件が載っていたり、注釈があったりと必要なデータ以外のものが記載されていたりします。

ファイルも置いておきますので、試してみたい方はどうぞ。

まずはこのcsvファイルをPandasのread_csvで読み込むとこうなります。

import pandas as pd

filename = "python-pandas-49.csv"

df = pd.read_csv(filename)

print(df)

実行結果
              dummy   dummy   dummy.1
dummy 0 1 2       3       4         5
      1 2 4       6       8        10
      2 3 6       9      12        15
      3 4 8      12      16        20
NaN   4 5 10     15      20        25
      5 6 12     18      24        30

それでは始めていきましょう。

おさらい:スキップする行の指定(skiprows)

まずはおさらいで、スキップする行の指定方法ですが、read_csvのオプション引数として「skiprows=スキップする行数」を加えます。

上から何行スキップするかを指定しますので、何行目をスキップしたいという使い方はできません。

import pandas as pd

filename = "python-pandas-49.csv"

df = pd.read_csv(filename, skiprows=1)

print(df)

実行結果
   dummy   0   1   2   3   4   5
0  dummy   1   2   4   6   8  10
1  dummy   2   3   6   9  12  15
2  dummy   3   4   8  12  16  20
3    NaN   4   5  10  15  20  25
4    NaN   5   6  12  18  24  30

1行目がスキップされ、データがある2行目から表示されたことで少しスッキリしました。

読み込む列の指定(usecols)

列の場合はスキップする列を指定するのではなく、読み込む列を指定します。

その際には「usecols=読み込む列のリスト」をread_csvに追加します。

import pandas as pd

filename = "python-pandas-49.csv"

df = pd.read_csv(filename, skiprows=1, usecols=[1, 2, 3, 4, 5, 6])

print(df)

実行結果
    0   1   2   3   4   5
0   1   2   4   6   8  10
1   2   3   6   9  12  15
2   3   4   8  12  16  20
3   4   5  10  15  20  25
4   5   6  12  18  24  30

リスト形式で指定すればいいのでrange関数と組み合わせても使えます。

import pandas as pd

filename = "python-pandas-49.csv"

start_col = 1
end_col = 7

df = pd.read_csv(filename, skiprows=1, usecols=range(start_col, end_col))

print(df)

実行結果
    0   1   2   3   4   5
0   1   2   4   6   8  10
1   2   3   6   9  12  15
2   3   4   8  12  16  20
3   4   5  10  15  20  25
4   5   6  12  18  24  30

読み込む列を指定するので、全部指定しなくても、欲しい場所だけ指定しても大丈夫です。

import pandas as pd

filename = "python-pandas-49.csv"

df = pd.read_csv(filename, skiprows=1, usecols=[1, 3, 5])

print(df)

実行結果
    0   2   4
0   1   4   8
1   2   6  12
2   3   8  16
3   4  10  20
4   5  12  24

次回はPythonでコメントアウトする方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次