2つのcsvの株価データを日付をキーにマージしたい。しかし、キーの日付データが、%Y/%m/%dと%Y-%m-%dで異なっていて、うまく統合できない。
どちらかの株価データの日付データのフォーマットを変更して合わせたらと思っているのですが、方法を教えてください。
jupyter notebookを使い、pandasをインストルして行っています。
プログラム例:
import pandas as pd
%matplotlib inline
stockPriceTable = pd.read_csv("stockPriceTable.csv",encoding="utf-8_sig")
stockPrise = stockPriceTable.iloc[[0,1,2,3,4],[0, 4]] #df.iloc[[1, 2],[0, 1]]1, 2行目の0, 1列
print("stockPrise =\n",stockPrise)
n225 = pd.read_csv('n225x.csv',usecols=['日付','終値','日経CFD:前日比','日経CFD:翌日比'],encoding="shift-jis")
n225.rename(columns={"日付":"date"}, inplace=True)#,encoding="utf-8_sig")
n225 = n225.loc[:, ['date','日経CFD:前日比','日経CFD:翌日比']]
n1 = len(n225)
n225d = n225.iloc[n1-7:n1,:]
print("n225d =\n",n225d)
print('############### 指定列データをキーにしてマージ ########################')
ETFTable = pd.merge(stockPriceTable, n225, on='date')
print("ETFTable =\n",ETFTable)
プリントアウト:
stockPrise =
date 1329 iシェアーズ・コア 日経225ETF
0 2019-07-29 -60.0
1 2019-07-26 -140.0
2 2019-07-25 90.0
3 2019-07-24 60.0
4 2019-07-23 260.0
n225d =
date 日経CFD:前日比 日経CFD:翌日比
2212 2019/7/19 NaN NaN
2213 2019/7/22 NaN NaN
2214 2019/7/23 NaN NaN
2215 2019/7/24 NaN NaN
2216 2019/7/25 NaN NaN
2217 2019/7/26 NaN NaN
2218 2019/7/29 NaN NaN
############### 指定列データをキーにしてマージ ########################
ETFTable =
Empty DataFrame
Columns: [date, year, month, day, 1329 iシェアーズ・コア 日経225ETF, 1364 iシェアーズ JPX日経400 ETF, 1369 One ETF 日経225, ・・・・・・・・・・・・・・・
'date'のフォーマットが違うためと思われます。株価データを入手すると時にファーマットを合わせれないので、dateフォーマットを合わすため、一方を変更したらよいとのですが、その
方法が分かりません。ご指導をお願いいたします。(説明しやすくするため、プログラムは省略しています。n225dのNaN部には実際には株価データが入っています。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/31 01:16