Python 为什么我得到类型错误:不支持的操作数类型为/:';str';和';int';?

Python 为什么我得到类型错误:不支持的操作数类型为/:';str';和';int';?,python,pandas,machine-learning,statistics,data-analysis,Python,Pandas,Machine Learning,Statistics,Data Analysis,在下面关于统计数据的问题中,我尝试用python进行“两个样本独立的t测试” 一家百货公司的分析师想评估一下最近的信用卡促销活动。为此,随机选择了500名持卡人。一半的人收到了一则广告,宣传在未来三个月内降低购买利率,另一半人收到了一则标准的季节性广告。这种宣传对增加销售额有效吗? 下面是我的代码。我在写代码时犯了一些错误,请帮忙 来自scipy导入统计信息 std_promo=cust[(cust['insert']=='Standard')] 新促销=客户[(客户['insert']=='n

在下面关于统计数据的问题中,我尝试用python进行“两个样本独立的t测试”

一家百货公司的分析师想评估一下最近的信用卡促销活动。为此,随机选择了500名持卡人。一半的人收到了一则广告,宣传在未来三个月内降低购买利率,另一半人收到了一则标准的季节性广告。这种宣传对增加销售额有效吗? 下面是我的代码。我在写代码时犯了一些错误,请帮忙

来自scipy导入统计信息
std_promo=cust[(cust['insert']=='Standard')]
新促销=客户[(客户['insert']=='new Promotion')]
打印(标准宣传头(3))
印刷品(新广告头(3))
我插入美元
0 148标准2232.771979
2973标准2327.092181
3 1096标准1280.030541
我插入美元
1572新促销1403.807542
4 1541新促销1513.563200
51947新促销1729.627996
打印(标准促销平均值())
打印(新促销平均值())
id 69003.000000
1566.389031美元
数据类型:64
id 64998.244000
1637.499983美元
数据类型:64
打印(std_promo.std())
打印(新的促销标准()
识别号37753.106923
346.673047美元
数据类型:64
id 38508.218870
356.703169美元
数据类型:64
stats.ttest_ind(a=std_promo,b=new_promo,equal_var=True)
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
1统计数据测试索引(a=标准促销,
---->2 b=新的宣传片)
ttest\u ind中的~\Anaconda3\lib\site packages\scipy\stats\stats.py(a、b、axis、equal\u var、nan\u策略)
4163返回测试结果(np.nan,np.nan)
4164
->4165 v1=np.var(a轴,ddof=1)
4166 v2=np.var(b轴,ddof=1)
4167 n1=a.形状[轴]
变量中的~\Anaconda3\lib\site packages\numpy\core\fromnumeric.py(a、axis、dtype、out、ddof、keepdims)
3365
3366返回方法。变量(a,axis=axis,dtype=dtype,out=out,ddof=ddof,
->3367**夸尔格)
3368
3369
~\Anaconda3\lib\site packages\numpy\core\\u methods.py in\u var(a、axis、dtype、out、ddof、keepdims)
108如果存在(平均值,单位):
109平均值=um.true\u除以(
-->110平均值,rcount,out=arrmean,casting='unsafe',subok=False)
111.其他:
112 arrmean=arrmean.dtype.type(arrmean/rcount)
TypeError:/:“str”和“int”的操作数类型不受支持

我认为您需要更改:

stats.ttest_ind(a= std_promo, b= new_promo, equal_var= True)

我创建了一个与您类似的DF,并运行了它,它使用美元工作:

Ttest_indResult(statistic=7.144078895160622, pvalue=9.765848295636031e-05)

对于
stats.ttest\u ind
,参数a和b应该是列表/数组。在您的例子中,它们是数据帧。请将参数更改为列表/数组,然后再次运行代码。请参考scipy统计网站。但是,这里我要传递std_宣传片和new_宣传片,它们是熊猫系列,是一维标签阵列。谢谢你,我一定会参考这个网站,因为我是新的,还在学习。谢谢你的回复。在这个问题中,我刚刚添加了equal_var=True,它适用于上述代码。因为得到的测试数据与你的不同。
stats.ttest_ind(a= std_promo.dollars, b= new_promo.dollars, equal_var= True)
Ttest_indResult(statistic=7.144078895160622, pvalue=9.765848295636031e-05)