首页 > 解决方案 > Python For 循环问卷

问题描述

我的代码将解决两个问题:

  1. 我想做的是创建一个问卷,人们在其中回答不同的问题,范围从 1 到 5。问题结构仍然存在,所以我尝试了一个循环。

但是,输出总是错误的......这是我尝试过的:

import pandas as pd

#named the question subjects
factor_test_target_a1 = "name1"
factor_test_target_a2 = "name2"
factor_test_target_a3 = "name3"
factor_test_target_a4 = "name4"
factor_test_target_a5 = "name5"
factor_test_target_a6 = "name6"

#generated an array of question subjects to loop trough
test_target = pd.DataFrame([factor_test_target_a1, factor_test_target_a2, factor_test_target_a3, 
factor_test_target_a4, factor_test_target_a5,factor_test_target_a6])

#generated the for loop
for n in test_target: input("Please indicate the approriateness of" + str(n + 1) + "from 1-5: ")

print(n)

出现的错误是:

TypeError: can only concatenate str (not "int") to str
  1. 我的目标是使用 n 的答案,在以下等式中为每个主题定义一个固定变量,意思是 n= (ni-fixedfactori/fixedfactori)

为此,我创建了以下等式:

reference = pd.DataFrame([4.3412, 4.327, 4.306, 4.200, 4.00, 3.775])

df_norm = test_target()
df_reference = reference()

#apply scaling
for n in test_target:
df_norm[n] = ((df_norm[str(n + 1)] - df_reference[str(n + 1)])/ df_reference[str(n + 1)])
print(n)

在这里,它给了我一个关于缩进的错误。

标签: pythonfor-loop

解决方案


错误在行 str(n + 1)

这里 n 的值来自

[factor_test_target_a1,factor_test_target_a2,factor_test_target_a3,factor_test_target_a4,factor_test_target_a5,factor_test_target_a6]

因此你不能用 1 添加这些字符串

for n in test_target: 
input("Please indicate the approriateness of" + str(n + 1) + "from 1-5: ")

我想你想把这些元素的索引使用索引属性


推荐阅读