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

为什么在Pandas中使用std()时返回对象?,pandas,Pandas,排列平均值的打印结果分组并正确计算。为什么我会将其作为std_偏差列的结果而不是按股票代码分组的价差的标准偏差返回 位于0x000000000484A588的pandas.core.groupby.SeriesGroupBy对象 df = pd.read_csv('C:\\Users\\William\\Desktop\\tickdata.csv', dtype={'ticker': str, 'bidPrice': np.float64, 'askPrice'

排列平均值的打印结果分组并正确计算。为什么我会将其作为std_偏差列的结果而不是按股票代码分组的价差的标准偏差返回 位于0x000000000484A588的pandas.core.groupby.SeriesGroupBy对象

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())
更新:不再返回一个对象,但现在正试图找出如何通过ticker显示标准偏差

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))
这一行:

df = df.groupby(['ticker'])
df
分配给DataFrameGroupBy对象,并

df['std_deviation']
是(列的)SeriesGroupBy对象

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

这一行:

df = df.groupby(['ticker'])
df
分配给DataFrameGroupBy对象,并

df['std_deviation']
是(列的)SeriesGroupBy对象


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

嘿!多亏了你的建议,我现在得到的东西不是实物。然而,现在它给了我一个数字:每个价差的标准差。如何在不使用groupby的情况下按股票代码对标准偏差进行分组?(OP中的修订代码)使用groupby,您可以执行
df.groupby([“ticker”])[“spread”].std(ddof=0)
。嘿!多亏了你的建议,我现在得到的东西不是实物。然而,现在它给了我一个数字:每个价差的标准差。如何在不使用groupby的情况下按股票代码对标准偏差进行分组?(OP中的修订代码)使用groupby,您可以执行
df.groupby([“ticker”])[“spread”].std(ddof=0)