【发布时间】:2017-02-08 08:57:44
【问题描述】:
我正在创建一个计算客户数据之间相关性的程序。我想将相关值打印到 CSV,以便进一步分析数据。
我已经成功地让我的程序遍历所有客户(每个客户 12 个月的数据),同时计算他们在多个安排中的个人相关性。如果我打印到对话框,我可以看到这一点。
但是,当我尝试使用 Savetxt 保存时,我只得到了我计算的最终值。
我认为我将 for 循环放在了错误的位置,它应该放在哪里?我已经尝试查看其他问题,但并没有对它提供太多启示。
编辑:我已尝试按照建议将写作与外部 for 循环和内部 for 循环对齐,两者都产生了相同的结果。
for x_customer in range(0,len(overalldata),12):
for x in range(0,13,1):
cust_months = overalldata[0:x,1]
cust_balancenormal = overalldata[0:x,16]
cust_demo_one = overalldata[0:x,2]
cust_demo_two = overalldata[0:x,3]
num_acct_A = overalldata[0:x,4]
num_acct_B = overalldata[0:x,5]
#Correlation Calculations
demo_one_corr_balance = numpy.corrcoef(cust_balancenormal, cust_demo_one)[1,0]
demo_two_corr_balance = numpy.corrcoef(cust_balancenormal, cust_demo_two)[1,0]
demo_one_corr_acct_a = numpy.corrcoef(num_acct_A, cust_demo_one)[1,0]
demo_one_corr_acct_b = numpy.corrcoef(num_acct_B, cust_demo_one)[1,0]
demo_two_corr_acct_a = numpy.corrcoef(num_acct_A, cust_demo_two)[1,0]
demo_two_corr_acct_b = numpy.corrcoef(num_acct_B, cust_demo_two)[1,0]
result_correlation = [(demo_one_corr_balance),(demo_two_corr_balance),(demo_one_corr_acct_a),(demo_one_corr_acct_b),(demo_two_corr_acct_a),(demo_two_corr_acct_b)]
result_correlation_combined = emptylist.append([result_correlation])
cust_delete_list = [0,(x_customer),1]
overalldata = numpy.delete(overalldata, (cust_delete_list), axis=0)
numpy.savetxt('correlationoutput.csv', numpy.column_stack(result_correlation), delimiter=',')
print result_correlation
【问题讨论】:
-
你的假设听起来是对的。你应该取消缩进最后的
savetxt行 -
它抛出“意外缩进错误”
-
根本不应该缩进(与外部
for对齐) -
我尝试了这个解决方案,但没有奏效。
-
你能用新缩进的代码编辑你的问题并解释一下吗?
标签: python csv numpy for-loop overwrite