
ゆうき( @BASEBALLY15 )です^^
データフレームに,このように1から順番に番号を付ける方法を教えてください・・・
High | Low | Open | Close | Volume | Adj Close | |
---|---|---|---|---|---|---|
Date | ||||||
2009-12-31 | 311.532288 | 308.832428 | 311.208527 | 308.832428 | 2448700.0 | 308.832428 |
2010-01-04 | 313.579620 | 310.954468 | 312.304413 | 312.204773 | 3927000.0 | 312.204773 |
2010-01-05 | 312.747742 | 309.609497 | 312.418976 | 310.829926 | 6031900.0 | 310.829926 |
2010-01-06 | 311.761444 | 302.047852 | 311.761444 | 302.994293 | 7987100.0 | 302.994293 |
2010-01-07 | 303.861053 | 295.218445 | 303.562164 | 295.940735 | 12876600.0 | 295.940735 |
↓
High | Low | Open | Close | Volume | Adj Close | Number | |
---|---|---|---|---|---|---|---|
Date | |||||||
2009-12-31 | 311.532288 | 308.832428 | 311.208527 | 308.832428 | 2448700.0 | 308.832428 | 1 |
2010-01-04 | 313.579620 | 310.954468 | 312.304413 | 312.204773 | 3927000.0 | 312.204773 | 2 |
2010-01-05 | 312.747742 | 309.609497 | 312.418976 | 310.829926 | 6031900.0 | 310.829926 | 3 |
2010-01-06 | 311.761444 | 302.047852 | 311.761444 | 302.994293 | 7987100.0 | 302.994293 | 4 |
2010-01-07 | 303.861053 | 295.218445 | 303.562164 | 295.940735 | 12876600.0 | 295.940735 | 5 |
分かりました^^
それでは,今回は DataFrameに1,2,3,4,5,6,…と数字を追加するコードを紹介します.
よろしくお願いします・・・

Today’s Code
GOOG["Number"] = [i+1 for i in range(len(GOOG))]
この1文で,DataFrameに数字を追加することが出来ます.
range(len(GOOG)は,GOOGの長さの範囲を意味しています.
つまり,for i in range(len(GOOG))は,GOOGの長さの範囲分,iに代入していくという意味です.
一般的に,len()は0,1,2,3,…と始まりの値が0で始まるため,i+1とすることで,1からスタートしています.
全コード
ライブラリ
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import pandas_datareader as pdr
from pandas_datareader import DataReader
import matplotlib.pyplot as plt
from datetime import datetime
import seaborn as sns
コード
#リストを作成
gafa_list=["GOOG","AAPL","FB","AMZN"]
#現在
end = datetime.now()
end_year = end.year
#始まり
start = datetime(end.year-10,end.month,end.day)
stare_year = start.year
for gafa_stock in gafa_list:
globals()[gafa_stock] = pdr.DataReader(gafa_stock, "yahoo", stare_year, end_year)
GOOG["Number"] = [i+1 for i in range(len(GOOG))]
#実行
GOOG.head()
High | Low | Open | Close | Volume | Adj Close | Number | |
---|---|---|---|---|---|---|---|
Date | |||||||
2009-12-31 | 311.532288 | 308.832428 | 311.208527 | 308.832428 | 2448700.0 | 308.832428 | 1 |
2010-01-04 | 313.579620 | 310.954468 | 312.304413 | 312.204773 | 3927000.0 | 312.204773 | 2 |
2010-01-05 | 312.747742 | 309.609497 | 312.418976 | 310.829926 | 6031900.0 | 310.829926 | 3 |
2010-01-06 | 311.761444 | 302.047852 | 311.761444 | 302.994293 | 7987100.0 | 302.994293 | 4 |
2010-01-07 | 303.861053 | 295.218445 | 303.562164 | 295.940735 | 12876600.0 | 295.940735 | 5 |
終わりに
DataFrameを扱う際に,indexの値が複雑なことが多くないですか?
そんな時は,是非今回ご紹介したコードを使ってみてください^^
それでは・・・