为什么在Pandas中使用std()时我返回了一个对象?

时间:2016-06-17 00:28:26

标签: pandas

差价的平均打印出来了,并且计算正确。为什么我将这个返回作为std_deviation列的结果而不是通过自动收报机分组的差价的标准偏差?: pandas.core.groupby.SeriesGroupBy对象位于0x000000000484A588

df = pd.read_csv('C:\\Users\\William\\Desktop\\tickdata.csv',
                 dtype={'ticker': str, 'bidPrice': np.float64, 'askPrice':      np.float64, 'afterHours': str},
                 usecols=['ticker', 'bidPrice', 'askPrice', 'afterHours'],
                 nrows=3000000
                 )

df = df[df.afterHours == "False"]
df = df[df.bidPrice != 0]
df = df[df.askPrice != 0]
df['spread'] = (df.askPrice - df.bidPrice)
df['std_deviation'] = df['spread'].std(ddof=0)
df = df.groupby(['ticker'])

print(df['std_deviation'])
print(df['spread'].mean())

更新:不再返回对象,但现在试图找出如何通过自动收报机显示标准差

df['spread'] = (df.askPrice - df.bidPrice)
df2 = df.groupby(['ticker'])
print(df2['spread'].mean())

df = df.set_index('ticker')
print(df['spread'].std(ddof=0))

UPDATE2:使用

获取了我需要的数据集
df = df[df.afterHours == "False"]
df = df[df.bidPrice != 0]
df = df[df.askPrice != 0]
df['spread'] = (df.askPrice - df.bidPrice)

print(df.groupby(['ticker'])['spread'].mean())
print(df.groupby(['ticker'])['spread'].std(ddof=0))

1 个答案:

答案 0 :(得分:0)

这一行:

df

df['std_deviation'] 分配给DataFrameGroupBy对象,并

#[serde(deserialize_with="$path")]

是一个SeriesGroupBy对象(列的)。

最好不要将一个变量“影子”/重新分配给一个完全不同的数据类型。尝试为groupby使用不同的变量名称!