gpt4 book ai didi

python - 迭代字典以创建一个 DataFrame,其中列名是字典键

转载 作者:行者123 更新时间:2023-11-28 22:42:08 25 4
gpt4 key购买 nike

我正在尝试创建一个 Pandas DataFrame,其中每一列都是单个股票的百分比变化,按日期索引。我在获取百分比变化、将其添加到空 DataFrame 并将该列命名为股票代码时遇到了问题。

import pandas as pd
import pandas.io.data as web
from pandas import Series, DataFrame

stocks = {'xom': '2014-01-01', 'dvn': '2013-01-01', 'aapl': '2013-01-01'}
for key in stocks:
L = []
price = web.get_data_yahoo(key, stocks[key])['Adj Close']
change = price.diff().cumsum()
perChange = change / price.iloc[0]

到目前为止一切都按计划进行......

    L.append(perChange)
df = pd.DataFrame(L)
df.columns = keys

最佳答案

L 移到循环外,这样它就不会在每次迭代时重新实例化。如果将 L 设为字典,则字典的键将成为由 df = pd.DataFrame(L) 形成的 DataFrame 的列:

import pandas as pd
import pandas.io.data as web

stocks = {'xom': '2014-01-01', 'dvn': '2013-01-01', 'aapl': '2013-01-01'}
L = dict()
for stock, date in stocks.items():
price = web.get_data_yahoo(stock, date)['Adj Close']
change = price.diff().cumsum()
perChange = change / price.iloc[0]
L[stock] = perChange
df = pd.DataFrame(L)
print(df.head())

产量

                aapl       dvn  xom
Date
2013-01-02 NaN NaN NaN
2013-01-03 -0.012622 0.017728 NaN
2013-01-04 -0.040125 0.040412 NaN
2013-01-07 -0.045772 0.040793 NaN
2013-01-08 -0.043203 0.033359 NaN

关于python - 迭代字典以创建一个 DataFrame,其中列名是字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com