【发布时间】:2021-09-22 09:11:12
【问题描述】:
我有一个数据框 close 包含一些股票的收盘价(预先进行一些计算),我想创建一个数据框(带有空条目或随机数),这样行名就是 @ 的代码987654322@ 和列名从 10 到 300,步长为 10。即。 10,20,30,40,50...
我想创建这个 df 以便使用 for 循环来填写所有条目。
我的dfclose如下:
Close \
ticker AAPL AMD BIDU GOOGL IXIC
Date
2011-06-01 12.339643 8.370000 132.470001 263.063049 2769.189941
2011-06-02 12.360714 8.240000 138.490005 264.294281 2773.310059
2011-06-03 12.265714 7.970000 133.210007 261.801788 2732.780029
2011-06-06 12.072857 7.800000 126.970001 260.790802 2702.560059
2011-06-07 11.858571 7.710000 124.820000 259.774780 2701.560059
......
我尝试检查我是否首先正确创建了这个数据框,如下所示:
rows = close.iloc[0]
columns = [[i] for i in range(10,300,10)]
print(pd.DataFrame(rows, columns))
但我得到的是:
2011-06-01
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 NaN
在这之后,我会使用类似的东西
percent = pd.DataFrame(rows, columns)
for i in range(10, 300, 10):
myerror = myfunction(close, i) # myfunction is a function defined beforehand
extreme = myerror > 0.1
percent.iloc[:,i] = extreme.mean()
具体来说,对于i=10,我的extreme.mean() 是这样的:
ticker
Absolute Error (Volatility) AAPL 0.420
AMD 0.724
BIDU 0.552
GOOGL 0.316
IXIC 0.176
MSFT 0.320
NDXT 0.228
NVDA 0.552
NXPI 0.476
QCOM 0.468
SWKS 0.560
TXN 0.332
dtype: float64
但是如果我尝试这种方式,我得到了:
IndexError: iloc cannot enlarge its target object
我应该如何首先创建这个 df?还是我什至需要先创建这个 df?
【问题讨论】:
标签: python pandas dataframe function for-loop