python - 从列表中指定函数中的参数
问题描述
我已经阅读了许多线程(这里和这里)和文档(这里和这里)。但是,我无法让它工作。我得到一个错误
AxisError: axis 0 is out of bounds for array of dimension 0
谢谢。
import pandas as pd
from scipy.stats import levene
data = {'A': [1,2,3,4,5,6,7,8],
'B': [9,10,11,12,13,14,15,16],
'C': [1,2,3,4,5,6,7,8]}
df3 = pd.DataFrame(data, columns=['A', 'B','C'])
print(levene(df3['A'], df3['C'])) # this works as intended
cols_of_interest = ['A','C'] # my requirement could make this any combination
# function to pass through arguments into Levene test
def func(df,cols_of_interest):
cols = [col for col in 'df.'+df[cols_of_interest].columns] # my strategy to mimic the arguments
lev = levene(*cols)
print(lev)
func(df3,cols_of_interest)
解决方案
将您的列表理解替换def
为:
cols = [df[x] for x in cols_of_interest]
推荐阅读
- machine-learning - Gluon-ts:尝试个性化成本函数时的问题
- python - 你可以在 chrome 扩展中运行 python 脚本吗?
- javascript - React Hook useEffect 缺少依赖“消息”
- angular - 如何将aws访问和密钥与aws sqs sdk v3一起用于角度?
- java - 有没有一种简单的方法可以将 Java 字符串转换为包括变音符号在内的标题大小写,而无需第三方库
- java - 如何在 android studio 中创建适用于所有尺寸的响应式应用程序
- spring-webflux - 正确登录反应式应用程序 - WebFlux
- r - 在 R 中使用 map_*()
- python-3.x - Pandas strptime 返回一个字符串而不是 DateTime 对象
- html - 通过ajax向快递服务器发送数据时遇到问题