Python 是否对数据帧列中的所有唯一值运行spice.stats ANOVA测试?

Python 是否对数据帧列中的所有唯一值运行spice.stats ANOVA测试?,python,pandas,dataframe,anova,scipy.stats,Python,Pandas,Dataframe,Anova,Scipy.stats,我有一个由许多城市及其相应温度组成的数据框架: Current恒温器温度 城市 克拉德利希思20.0 克拉德利希思20.0 Cradley Heath 18.0 克拉德利希思15.0 克拉德利希思19.0 ... ... 沃尔索尔16.0 沃尔索尔22.0 沃尔索尔20.0 沃尔索尔20.0 沃尔索尔20.0 [6249行x 1列] 唯一值为: 索引(['Cradley Heath','ROWLEY REGIS','Smethwick'

我有一个由许多城市及其相应温度组成的数据框架:

Current恒温器温度
城市
克拉德利希思20.0
克拉德利希思20.0
Cradley Heath 18.0
克拉德利希思15.0
克拉德利希思19.0
...                              ...
沃尔索尔16.0
沃尔索尔22.0
沃尔索尔20.0
沃尔索尔20.0
沃尔索尔20.0
[6249行x 1列]
唯一值为:

索引(['Cradley Heath','ROWLEY REGIS','Smethwick','Oldbury',',
“西布罗姆维奇”、“布拉德福德”、“伯恩茅斯”、“普尔”、“沃勒姆”,
“温伯恩”,
...
“圣海伦斯”、“阿尔特林查姆”、“润科恩”、“维德内斯”、“圣海伦斯”,
“韦克菲尔德”、“卡斯特福德”、“庞特弗雷特”、“沃尔萨尔”、“周三伯里”],
dtype='object',name='City',length=137)
我的目标是做单向方差分析测试,即

从scipy.stats导入f_单向
用于数据框中的所有唯一值。我也是

SciPy.stats.f_单向(“所有唯一值”)
并接收输出:所有变量的单向ANOVA测试给出{}和p值{} 这是我多次尝试但不起作用的方法:

all=Tempvs.index.unique()
临时排序索引(就地=真)
对于范围内的n(len(all)):
截断=临时截断(全部[n],全部[n])
打印(f_单向(截断))

IIUC您希望进行方差分析测试,其中每个样本包含唯一元素
城市
的值
Temp
。如果是这样,你可以这样做

import numpy as np
import pandas as pd
import scipy.stats as sps

# I create a sample dataset
index = ['Cradley Heath', 'ROWLEY REGIS',
         'Smethwick', 'Oldbury',
         'West Bromwich', 'Bradford', 
         'Bournemouth', 'Poole', 'Wareham',
         'Wimborne','St. Helens', 'Altrincham', 
         'Runcorn', 'Widnes', 'St Helens',
         'Wakefield', 'Castleford', 'Pontefract', 
         'Walsall', 'Wednesbury']
np.random.seed(1)
df = pd.DataFrame({
    'City': np.random.choice(index, 500),
    'Temp': np.random.uniform(15, 25, 500)
})

# populate a list with all
# values of unique Cities
values = []
for city in df.City.unique():
    _df = df[df.City==city]
    values.append(_df.Temp.values)

# compute the ANOVA
# with starred *list
# as arguments
sps.f_oneway(*values)
在这种情况下,这将

F_onewayResult(statistic=0.4513685152123563, pvalue=0.9788508507035195)
PS:不要将
all
用作变量,因为它是一个内置python函数,请参阅


非常感谢,先生。谢谢你的帮助。如果你认为这解决了你的问题,请接受答案。谢谢