2 回答
TA贡献1744条经验 获得超4个赞
您可以使用与创建 DataFrame: 相同的功能pd.concat()
。它的第一个参数是要连接的 pandas Series 或 DataFrames 列表,因此stocks
应首先将其转换为 Series。您可以使用 来做到这一点pd.Series()
,它还需要一个name
参数,您可以使用该参数来指定将成为列名的内容。最后,通过axis=1
topd.concat()
使其成为沿列的连接。
df = pd.concat([pd.Series(stocks, name='Symbol'), df], axis=1)
TA贡献1821条经验 获得超4个赞
为什么不改变获取数据的方式?
import datetime as dt
import pandas_datareader as pdr
stocks = ['asb.pl', 'plw.pl', 'ten.pl']
end = dt.datetime.now()
start = end - dt.timedelta(days=2)
print(start, end="\n\n")
df = pdr.get_data_stooq(symbols=stocks, start=start, end=end).stack("Symbols")
print(df)
输出:
2020-04-29 17:21:12.690845
Attributes Close High Low Open Volume
Date Symbols
2020-04-30 asb.pl 3.28 3.39 3.280 3.37 128860
plw.pl 425.00 449.50 415.000 449.50 43509
ten.pl 419.50 444.00 410.500 440.00 23920
2020-04-29 asb.pl 3.32 3.38 3.245 3.25 144000
plw.pl 449.50 453.00 440.500 441.00 13464
ten.pl 431.00 435.00 415.500 416.50 24347
我想这也更有效率。
添加回答
举报