【发布时间】:2021-03-12 05:15:28
【问题描述】:
这是我目前拥有的代码,但我不确定是否应该在计算出标准偏差和平均值后加入数据帧。我目前陷入困境的地方是选择值大于或小于 avg +/1 标准的行。我只是不知道如何遍历每一列并做到这一点?我想过一个 for 循环,但不完全确定如何去做。
import pandas_datareader.data as web
import datetime as date
fromDate ="2014-01-02"
toDate = "2016-01-02"
dfSixMo = web.DataReader('DGS6MO','fred',fromDate,toDate)
dfOneYear = web.DataReader('DGS1','fred',fromDate,toDate)
dfFiveYear = web.DataReader('DGS5','fred',fromDate,toDate)
dfTenYear = web.DataReader('DGS10','fred',fromDate,toDate)
dfJoin1 = dfSixMo.join(dfOneYear,how = 'inner')
dfJoin2 = dfFiveYear.join(dfTenYear,how='inner')
dfFinal = dfJoin1.join(dfJoin2,how='inner')
print(dfFinal)
mean = dfFinal.mean()
print('\nMean:')
print(mean)
StDev = dfFinal.std()
print('\n Standard Deviation:')
print(StDev)
【问题讨论】:
-
可以分享示例数据吗?
-
如果要对整个DataFrame进行标准差,可以给
df.stack().std()。同样,df.stack().mean() -
另一种方法是使用 numpy 选项。
df.values.std(ddof=1)。更多信息是here
标签: python pandas dataframe pandas-datareader