0

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

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

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

4

2 回答 2

0
  1. 准备一个字典来存储结果。
  2. 使用 xlrd 获取您拥有的数据的行数,然后遍历它们中的每一个。
  3. 对于每个状态代码,如果它不是in字典,您也可以将其创建为字典。
  4. 然后检查您在第二列中读取的条目是否存在于结果字典的状态键中。

    4.1 如果没有,您也将其创建为一个字典,并将在第二列中找到的数字作为该字典的键添加,值为 1。

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

完成循环后,您的结果字典将具有每个单独状态的每个单独条目的计数。

于 2013-08-24T00:20:55.270 回答
0

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

data = [['CA', 1],
        ['AZ', 2],
        ['NM', 3],
        ['CA', 2]]

现在,对于每个州,对于每个数字,您想要的是对该数字出现的次数的计数。所以:

counts = {}
for state, number in data:
    counts.setdefault(state, collections.Counter())[number] += 1
于 2013-08-24T00:24:00.760 回答