[Python] Pandas – エクセルのセルを行を指定して読み込む方法
Pandasを使用してエクセルファイルの特定の行を読み込むには、read_excel関数
のskiprows
やheader
引数を活用します。
skiprows
は読み飛ばす行数を指定し、header
はデータのヘッダー行を指定します。
例えば、最初の5行をスキップして6行目から読み込みたい場合、skiprows=5
を指定します。
また、usecols
引数を使うことで特定の列を選択することも可能です。
エクセルの特定の行を読み込む方法
PythonのPandasライブラリを使用すると、エクセルファイルから特定の行を簡単に読み込むことができます。
以下では、特定の行を読み込むためのさまざまな方法を解説します。
skiprows引数の使い方
skiprows
引数を使用すると、読み込む際にスキップする行数を指定できます。
例えば、最初の2行をスキップしてデータを読み込む場合、以下のように記述します。
import pandas as pd
# エクセルファイルから最初の2行をスキップして読み込む
df = pd.read_excel('data.xlsx', skiprows=2)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
header引数の使い方
header
引数を使用すると、データのヘッダー行を指定できます。
例えば、3行目をヘッダーとして読み込む場合、以下のように記述します。
import pandas as pd
# 3行目をヘッダーとして読み込む
df = pd.read_excel('data.xlsx', header=2)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
nrows引数で読み込む行数を制限する
nrows
引数を使用すると、読み込む行数を制限できます。
例えば、最初の5行だけを読み込む場合、以下のように記述します。
import pandas as pd
# 最初の5行だけを読み込む
df = pd.read_excel('data.xlsx', nrows=5)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
2 データ7 データ8 データ9
3 データ10 データ11 データ12
4 データ13 データ14 データ15
特定の行をヘッダーとして読み込む方法
特定の行をヘッダーとして読み込むには、header
引数に行番号を指定します。
例えば、4行目をヘッダーとして読み込む場合、以下のように記述します。
import pandas as pd
# 4行目をヘッダーとして読み込む
df = pd.read_excel('data.xlsx', header=3)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
複数の行をスキップする方法
複数の行をスキップするには、skiprows
引数にリストを渡すことができます。
例えば、1行目と3行目をスキップする場合、以下のように記述します。
import pandas as pd
# 1行目と3行目をスキップして読み込む
df = pd.read_excel('data.xlsx', skiprows=[0, 2])
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
これらの方法を使うことで、エクセルファイルから必要なデータを効率的に読み込むことができます。
特定のセル範囲を読み込む方法
Pandasを使用すると、エクセルファイルから特定のセル範囲を簡単に読み込むことができます。
以下では、特定の列や行を指定してデータを読み込む方法を解説します。
usecols引数で特定の列を指定する
usecols
引数を使用すると、読み込む列を指定できます。
例えば、A列とC列だけを読み込む場合、以下のように記述します。
import pandas as pd
# A列とC列だけを読み込む
df = pd.read_excel('data.xlsx', usecols='A,C')
print(df)
列1 列3
0 データ1 データ3
1 データ4 データ6
skipfooter引数で末尾の行をスキップする
skipfooter
引数を使用すると、読み込む際に末尾の行をスキップできます。
例えば、最後の2行をスキップしてデータを読み込む場合、以下のように記述します。
import pandas as pd
# 最後の2行をスキップして読み込む
df = pd.read_excel('data.xlsx', skipfooter=2)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
index_col引数で特定の列をインデックスに指定する
index_col
引数を使用すると、特定の列をインデックスとして指定できます。
例えば、A列をインデックスとして読み込む場合、以下のように記述します。
import pandas as pd
# A列をインデックスとして読み込む
df = pd.read_excel('data.xlsx', index_col=0)
print(df)
列2 列3
列1
データ1 データ2 データ3
データ4 データ5 データ6
sheet_name引数で複数シートを扱う方法
sheet_name
引数を使用すると、特定のシートを指定してデータを読み込むことができます。
例えば、”Sheet2″というシートからデータを読み込む場合、以下のように記述します。
import pandas as pd
# "Sheet2"からデータを読み込む
df = pd.read_excel('data.xlsx', sheet_name='Sheet2')
print(df)
列1 列2 列3
0 データ7 データ8 データ9
1 データ10 データ11 データ12
dtype引数でデータ型を指定する
dtype
引数を使用すると、読み込むデータの型を指定できます。
例えば、A列を文字列型として読み込む場合、以下のように記述します。
import pandas as pd
# A列を文字列型として読み込む
df = pd.read_excel('data.xlsx', dtype={'列1': str})
print(df.dtypes)
列1 object
列2 object
列3 object
dtype: object
これらの方法を活用することで、エクセルファイルから必要なデータを効率的に抽出し、分析に役立てることができます。
応用例:エクセルデータの部分的な読み込み
Pandasを使用すると、エクセルファイルから必要なデータを部分的に読み込むことができます。
以下では、さまざまな応用例を紹介します。
複数のシートからデータを読み込む
複数のシートからデータを読み込むには、sheet_name
引数にリストを渡します。
例えば、”Sheet1″と”Sheet2″からデータを読み込む場合、以下のように記述します。
import pandas as pd
# 複数のシートからデータを読み込む
sheets = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
print(sheets['Sheet1'])
print(sheets['Sheet2'])
Sheet1:
列1 列2 列3
0 データ1 データ2 データ3
Sheet2:
列1 列2 列3
0 データ7 データ8 データ9
条件に基づいて行をフィルタリングする
読み込んだデータに対して条件を指定して行をフィルタリングすることができます。
例えば、列2の値が”データ2″の行だけを抽出する場合、以下のように記述します。
import pandas as pd
# データを読み込む
df = pd.read_excel('data.xlsx')
# 列2の値が"データ2"の行をフィルタリング
filtered_df = df[df['列2'] == 'データ2']
print(filtered_df)
列1 列2 列3
0 データ1 データ2 データ3
特定の列だけを読み込む方法
特定の列だけを読み込むには、usecols
引数を使用します。
例えば、A列とC列だけを読み込む場合、以下のように記述します。
import pandas as pd
# A列とC列だけを読み込む
df = pd.read_excel('data.xlsx', usecols='A,C')
print(df)
列1 列3
0 データ1 データ3
1 データ4 データ6
エクセルファイルの一部をDataFrameに変換する
エクセルファイルの特定の範囲をDataFrameに変換するには、usecols
やskiprows
を組み合わせて使用します。
例えば、A1からC5の範囲を読み込む場合、以下のように記述します。
import pandas as pd
# A1からC5の範囲を読み込む
df = pd.read_excel('data.xlsx', usecols='A:C', nrows=5)
print(df)
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
2 データ7 データ8 データ9
3 データ10 データ11 データ12
4 データ13 データ14 データ15
読み込んだデータを加工して保存する
読み込んだデータを加工した後、再度エクセルファイルとして保存することも可能です。
例えば、フィルタリングしたデータを新しいエクセルファイルに保存する場合、以下のように記述します。
import pandas as pd
# データを読み込む
df = pd.read_excel('data.xlsx')
# 列2の値が"データ2"の行をフィルタリング
filtered_df = df[df['列2'] == 'データ2']
# フィルタリングしたデータを新しいエクセルファイルに保存
filtered_df.to_excel('filtered_data.xlsx', index=False)
新しいエクセルファイル 'filtered_data.xlsx' が作成されました。
これらの応用例を活用することで、エクセルデータを効率的に操作し、分析やレポート作成に役立てることができます。
まとめ
この記事では、Pandasを使用してエクセルファイルから特定の行やセル範囲を効率的に読み込む方法について解説しました。
特に、skiprows
やheader
、usecols
などの引数を活用することで、必要なデータを柔軟に抽出することが可能です。
これらのテクニックを活用して、エクセルデータの分析や加工を行い、実務に役立ててみてください。