来自 pandas_datareader 的串联数据
Concatenated data from pandas_datareader
我正在尝试创建一个数据框,其中包含来自 2 个不同数据框的列。
import pandas as pd
import numpy as np
from statsmodels import api as sm
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2016,12,2)
end = datetime.datetime.today()
df = web.get_data_yahoo(['F'], start, end)
df1 = web.get_data_yahoo(['^GSPC'], start, end)
df3 = pd.concat([df['Adj Close'], df1['Adj Close']])
有了这个,我想得到 df3
的 2 列包含 [Adj Close] 的数据。我得到的是:
F ^GSPC
Date
2016-12-01 10.297861 NaN
2016-12-02 10.140451 NaN
2016-12-05 10.306145 NaN
2016-12-06 10.405562 NaN
2016-12-07 10.819797 NaN
... ... ...
2019-11-22 NaN 3110.290039
2019-11-25 NaN 3133.639893
2019-11-26 NaN 3140.520020
2019-11-27 NaN 3153.629883
2019-11-29 NaN 3140.979980
1508 rows × 2 columns
我需要做什么来摆脱 NaN 值,为什么它在那里?
为 concat
中的列连接添加参数 axis=1
:
df3 = pd.concat([df['Adj Close'], df1['Adj Close']], axis=1)
但我认为您的解决方案应该简化为 get_data_yahoo
:
df3 = web.get_data_yahoo(['F', '^GSPC'], start, end)
我正在尝试创建一个数据框,其中包含来自 2 个不同数据框的列。
import pandas as pd
import numpy as np
from statsmodels import api as sm
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2016,12,2)
end = datetime.datetime.today()
df = web.get_data_yahoo(['F'], start, end)
df1 = web.get_data_yahoo(['^GSPC'], start, end)
df3 = pd.concat([df['Adj Close'], df1['Adj Close']])
有了这个,我想得到 df3
的 2 列包含 [Adj Close] 的数据。我得到的是:
F ^GSPC
Date
2016-12-01 10.297861 NaN
2016-12-02 10.140451 NaN
2016-12-05 10.306145 NaN
2016-12-06 10.405562 NaN
2016-12-07 10.819797 NaN
... ... ...
2019-11-22 NaN 3110.290039
2019-11-25 NaN 3133.639893
2019-11-26 NaN 3140.520020
2019-11-27 NaN 3153.629883
2019-11-29 NaN 3140.979980
1508 rows × 2 columns
我需要做什么来摆脱 NaN 值,为什么它在那里?
为 concat
中的列连接添加参数 axis=1
:
df3 = pd.concat([df['Adj Close'], df1['Adj Close']], axis=1)
但我认为您的解决方案应该简化为 get_data_yahoo
:
df3 = web.get_data_yahoo(['F', '^GSPC'], start, end)