複数ワークシートのデータを結合する

Pythonでの金融データのインポートと管理

Stefan Jansen

Instructor

DataFrameを結合する

  • pd.DataFrame のリストを連結(スタック)
  • 構文: pd.concat([amex, nasdaq, nyse])

同じ列を持つNASDAQ、NYSE、AMEXの表

Pythonでの金融データのインポートと管理

DataFrameを結合する

  • pd.DataFrame のリストを連結(スタック)
  • 構文: pd.concat([amex, nasdaq, nyse])

axis = 0 での表

Pythonでの金融データのインポートと管理

DataFrameを結合する

  • pd.DataFrame のリストを連結(スタック)
  • 構文: pd.concat([amex, nasdaq, nyse])

3つの表を1つの縦長の表に結合

Pythonでの金融データのインポートと管理

2つのDataFrameを連結する

amex = pd.read_excel('listings.xlsx',
                     sheet_name='amex', 
                     na_values=['n/a'])

nyse = pd.read_excel('listings.xlsx', sheet_name='nyse', na_values=['n/a'])
pd.concat([amex, nyse]).info()
Int64Index: 3507 entries, 0 to 3146
Data columns (total 7 columns):
 #   Column                 Non-Null Count  Dtype  
 --  ------                 --------------  -----  
 0   Stock Symbol           3507 non-null   object 
...
Pythonでの金融データのインポートと管理

参照列を追加する

amex['Exchange'] = 'AMEX' # 元の出所を示す列を追加
nyse['Exchange'] = 'NYSE'

listings = pd.concat([amex, nyse])
listings.head(2)
  Stock Symbol    ...      Exchange       
0         XXII    ...         AMEX    
1          FAX    ...         AMEX
Pythonでの金融データのインポートと管理

3つのDataFrameを結合する

xls = pd.ExcelFile('listings.xlsx')

exchanges = xls.sheet_names
# 結合用に空のリストを作成 listings = []
for exchange in exchanges: listing = pd.read_excel(xls, sheet_name=exchange) # 参照列を追加 listing['Exchange'] = exchange # DataFrame をリストへ追加 listings.append(listing)
# DataFrame のリストを結合 combined_listings = pd.concat(listings)
Pythonでの金融データのインポートと管理

3つのDataFrameを結合する

combined_listings.info()
Int64Index: 6674 entries, 0 to 3146
Data columns (total 8 columns):
 #   Column                 Non-Null Count  Dtype  
 --  ------                 --------------  -----  
 0   Stock Symbol           6674 non-null   object 
 1   Company Name           6674 non-null   object 
 2   Last Sale              6590 non-null   float64
 3   Market Capitalization  6674 non-null   float64
 4   IPO Year               2852 non-null   float64
 5   Sector                 5182 non-null   object 
 6   Industry               5182 non-null   object 
 7   Exchange               6674 non-null   object 
dtypes: float64(3), object(5)
Pythonでの金融データのインポートと管理

Let's practice!

Pythonでの金融データのインポートと管理

Preparing Video For Download...