Aar*_*ron -1 python scipy anova pandas
我知道这听起来很荒谬,但是我必须将for循环传递给函数。我有一个包含75多个列的数据框,其中大多数是分类变量。变量之一被调用SalePrice
,我希望找到分类变量和之间的相关性SalePrice
。
这是我的代码,但是我认为手动遍历所有75列是荒谬的。有没有简单的方法?
df = pd.read_csv(file, delimiter=',')
qualityTest = df[["OverallQual","SalePrice"]]
qualities = [1,2,3,4,5,6,7,8,9,10]
stats.f_oneway(qualityTest['SalePrice'][qualityTest['OverallQual'] == 1],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 2],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 3],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 4],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 5],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 6],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 7],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 8],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 9],
qualityTest['SalePrice'][qualityTest['OverallQual'] == 10])
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这样做,但是没有用
stats.f_oneway(
for i in qualities:
qualityTest['SalePrice'][qualityTest['OverallQual'] == i]
)
Run Code Online (Sandbox Code Playgroud)
您可以使用列表理解-本质上,使用for
循环创建列表,然后将其传递给:
stats.f_oneway([qualityTest['salePrice'][qualityTest['OverallQual'] == i] for i in qualities])
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望将它作为i
单独的参数传递,而不是作为带有i
元素的列表传递,则可以*
在最外面的一组方括号前面添加一个权利(这会将刚刚创建的列表解压缩为函数参数)。
归档时间: |
|
查看次数: |
67 次 |
最近记录: |