Python编程方法—excel中的数据操作

Python编程方法—excel中的数据操作,python,excel,xlrd,xlwt,Python,Excel,Xlrd,Xlwt,我正在使用python包xlrd和xlwt使用python从excel电子表格中进行读写。但是我不知道如何编写代码来解决我的问题 所以我的数据由一列州缩写和一列数字组成,从1到7。每个州大约有200-300个条目,我想计算出每个州有多少个一、二、三等条目。我正在努力想我该用什么方法来解决这个问题 通常我会发布我已经有的代码,但我甚至不知道从哪里开始 准备一本字典来存储结果 使用xlrd获取包含数据的行数,然后对每个行进行迭代 对于每个状态代码,如果它不在dict中,您也可以将其创建为dict 然

我正在使用python包xlrd和xlwt使用python从excel电子表格中进行读写。但是我不知道如何编写代码来解决我的问题

所以我的数据由一列州缩写和一列数字组成,从1到7。每个州大约有200-300个条目,我想计算出每个州有多少个一、二、三等条目。我正在努力想我该用什么方法来解决这个问题

通常我会发布我已经有的代码,但我甚至不知道从哪里开始

  • 准备一本字典来存储结果
  • 使用xlrd获取包含数据的行数,然后对每个行进行迭代
  • 对于每个状态代码,如果它不在dict中,您也可以将其创建为dict
  • 然后检查您在第二列上读取的条目是否存在于results dict上的状态键中

    4.1如果没有,您还将创建一个dict,并将第二列中的数字作为该dict的键添加,值为1

    4.2如果是,只需增加该键的值(+1)


  • 一旦完成循环,result dict将拥有每个状态中每个条目的计数。

    我假设您已经知道如何处理这一简单部分,并将电子表格作为列表列表读入Python。所以,你有这样的东西:

    data = [['CA', 1],
            ['AZ', 2],
            ['NM', 3],
            ['CA', 2]]
    
    现在,对于每个状态,对于每个数字,您想要的是该数字出现的次数。因此:

    counts = {}
    for state, number in data:
        counts.setdefault(state, collections.Counter())[number] += 1
    

    这显然分为三个部分:(1)将Excel文件中的数据读入一些Python结构,如列表列表。(2) 处理数据的方式与处理来自CSV文件或一组文字的数据的方式相同。(3) 输出您想要输出的任何内容。我唯一的建议是使用
    pywin32
    并通过COM驱动Excel。就像用Python手工操作一样。这很完美,我完全不知道Counter对象或collections.Counter()。然而,在添加“导入集合”和“从集合导入计数器”后,我遇到了这个错误:TypeError:unhable type:“Counter”并且我的谷歌搜索不成功…@sarah:对不起,您需要将密钥和值传递到
    setdefault
    ,而我没有输入密钥。现在试试看。