vol_df值如下所示:
stock transactions
0 6668624093
1 7000414730
2 7666161224
3 5882916889
4 6301315220
5 4240619512
6 5152771960
7 5604573262
8 5632000282
9 4141531366
10 5099018549
11 5269035601
12 5587861806
13 4516673303
14 4591419535
15 3914740328
16 4347751931
17 4745714862
18 4911766203
19 4901183056
但是我为什么要做avg_vol_df=pd.Series(vol_df).rolling(window=20).mean()
呢?"The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."
请帮帮我。非常感谢。
我试过avg_vol_df=vol_df.rolling(20).mean()
我得到NaN
作为答案
我试过avg_vol_df=vol_df.rolling(min_periods=1).mean()
我得到了科学符号比如6.66~~~~+09
1条答案
按热度按时间jgovgodb1#
问题是你在DataFrame上调用
pd.Series
,如果你有一个只有一列的 Dataframe ,你可以使用pd.DataFrame.squeeze()
把它变成一个序列,但是我建议你只选择你想要的列:或者将其完全省略以使滚动应用于所有列:
出现NaN值是因为大小为20的滚动窗口至少需要20个值,因此您的输入仅包含1个此类窗口。
使用科学记数法是因为计算平均值会返回一个浮点值,并且您的输入足够大,可以使用科学记数法进行格式化。如果愿意,您可以自定义此行为。