複数ワークシートからのデータ取得

pandasで効率よくデータを取り込む

Amany Mahfouz

Instructor

読み込むシートの選択

  • read_excel() は既定で最初のシートを読み込みます
  • 他のシートは引数 sheet_name で指定します
  • シート名または(0始まりの)位置で指定できます
  • 複数読み込むには名前/番号のリストを渡します
  • read_excel() に渡した引数はすべてのシートに適用されます
pandasで効率よくデータを取り込む

読み込むシートの選択

スプレッドシートプログラムのスクリーンショット。2つのシートのタブを表示

pandasで効率よくデータを取り込む

特定シートの読み込み

# Get the second sheet by position index
survey_data_sheet2 = pd.read_excel('fcc_survey.xlsx',
                                   sheet_name=1)

# Get the second sheet by name survey_data_2017 = pd.read_excel('fcc_survey.xlsx', sheet_name='2017')
print(survey_data_sheet2.equals(survey_data_2017))
True
pandasで効率よくデータを取り込む

全シートの読み込み

  • sheet_name=None を渡すとブック内の全シートを読み込みます
survey_responses = pd.read_excel("fcc_survey.xlsx", sheet_name=None)

print(type(survey_responses))
<class 'collections.OrderedDict'>
for key, value in survey_responses.items():
    print(key, type(value))
2016 <class 'pandas.core.frame.DataFrame'>
2017 <class 'pandas.core.frame.DataFrame'>
pandasで効率よくデータを取り込む

まとめて実行

# Create empty dataframe to hold all loaded sheets
all_responses = pd.DataFrame()

# Iterate through dataframes in dictionary for sheet_name, frame in survey_responses.items(): # Add a column so we know which year data is from frame["Year"] = sheet_name
# Add the dataframe to all_responses all_responses = pd.concat([all_responses, frame])
# View years in data print(all_responses.Year.unique())
['2016' '2017']
pandasで効率よくデータを取り込む

練習しましょう!

pandasで効率よくデータを取り込む

Preparing Video For Download...