Pandas

[Python] Pandas – エクセルのセルを行を指定して読み込む方法

Pandasを使用してエクセルファイルの特定の行を読み込むには、read_excel関数skiprowsheader引数を活用します。

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に変換するには、usecolsskiprowsを組み合わせて使用します。

例えば、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を使用してエクセルファイルから特定の行やセル範囲を効率的に読み込む方法について解説しました。

特に、skiprowsheaderusecolsなどの引数を活用することで、必要なデータを柔軟に抽出することが可能です。

これらのテクニックを活用して、エクセルデータの分析や加工を行い、実務に役立ててみてください。

関連記事

Back to top button