## やりたい事

google colabからpythonを利用した処理で、

1)yahooの株価情報をスクレイピングしてきて、データフレームに格納

2)株価コードを追加したり、銘柄名を補正するなどのデータ変換

3)上記のデータをローカルにCSV保存する

1)yahooの株価情報をスクレイピングしてきて、データフレームに格納

#ライブラリの読み込み
import pandas
import datetime

# プログラム
def scraping_yahoo(code, start, end, term):
	base = "http://info.finance.yahoo.co.jp/history/?code={0}.T&{1}&{2}&tm={3}&p={4}"

	start = str(start)
	start = start.split("-")
	start = "sy={0}&sm={1}&sd={2}".format(start[0], start[1], start[2])
	end = str(end)
	end = end.split("-")
	end = "ey={0}&em={1}&ed={2}".format(end[0], end[1], end[2])
	page = 1

	result = []
	while True:
		url = base.format(code, start, end, term, page)
		df = pandas.read_html(url, header=0)
		if len(df[1]) == 0:
			break

		result.append(df[1])
		page += 1
	result = pandas.concat(result)
	result.columns = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close']

	return result

if __name__ == "__main__":
	company = 9683 ### 銘柄コードを指定する

	EndDate = datetime.date.today()
	StartDate = EndDate - datetime.timedelta(days=180)

	data = scraping_yahoo(company, StartDate, EndDate, "d")
	print(data)

上記のコードはこちらのサイトのものを参考にさせていただいています。

http://www.stockdog.work/entry/2016/08/28/180911

2)株価コードを追加したり、銘柄名を補正するなどのデータ変換

## スクレイピングデータを一時退避
df = data  

## 日付項目をソートできるようにフォーマット変換 
df['Date'] = pd.to_datetime(df['Date'], format='%Y年%m月%d日')

## adj CloseをDBに項目取り込みする為、スペース情報を_に変更
df = df.rename(columns={'Adj Close': 'Adj_Close'})

## 銘柄コードを追加
df['bond_cd'] = company

## 移動平均算出の為、Date順にソートする
df = df.sort_values(by=["Date"], ascending=True)

## 7日移動平均を算出して追加
df['avg_7day_Close'] = df["Close"].rolling(window=7).mean()
 
## indexをDateに変更
df.set_index("Date",inplace=True)

3)上記のデータをローカルにCSV保存する

from google.colab import files
filename = "bond.csv"
df.to_csv(filename)
files.download(filename)

おすすめの記事