计算csv列

时间:2017-03-19 14:52:24

标签: csv for-loop arcpy

我想搜索csv列并让我的脚本返回每个手机使用的总次数......这是我的代码,但我不确定问题是什么......

import arcpy
fc = "C:\Script\SAMPLES\SAMPLES.csv"
field = "phone"
iPhone = 0
Android = 0
other = 0
cursor = arcpy.SearchCursor(fc)
for row in cursor:
    #print(row.getValue(field))
    if row.getValue(field)=='iPhone':
        iPhone = iPhone + str(iPhone)
        print "The number of iPhones: " + iPhone
    elif:    
        Android=Android + str(Android)
        print "The number of Androids: " + Android
    elif:
        other=other + str(other)
        print "The number of other: " + other

我还包括了我收到的错误。

Traceback (most recent call last):
  File "C:\Python27\ArcGIS10.4\Lib\site-    packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Script\searchcursor.py", line 11, in <module>
    iPhone = iPhone + str(iPhone)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

1 个答案:

答案 0 :(得分:0)

  

+:&#39; int&#39;不支持的操作数类型和&#39; str&#39;

这表示您(基本上)尝试一起添加数字和字母。 Python将0(整数)和'0'(字符串)视为不同,并且不能将它们添加到一起。由于您使用iPhone(以及Androidother)作为计数器,因此您需要将两个整数相加。

我也不清楚你尝试添加到该计数器的内容。

iPhone = iPhone + int(iPhone)

如果iPhone = 0,则该公式为iPhone = 0 + 0。如果您已经计算了2部iPhone,那么该公式为iPhone = 2 + 2 - 您将该值加倍而不是递增。

你可能只想要:

iPhone = iPhone + 1

或(shorter

iPhone += 1