二维数组的Python频率

时间:2016-04-29 17:18:44

标签: list

我希望看到每年数据的频率。

我的数组如下所示:列出[数据,年份]

列表[[259,1910],[259,1910],[259,1910],[192,1910] .....

Data Year
259  1910
259  1910
259  1910
192  1910
313  1910
259  1911
259  1911
192  1912
313  1912

我希望得到像

这样的结果
Data Year Frequency
259  1910     3
259  1911     2
259  1912     0
192  1910     1
192  1911     0
192  1912     1
...

..

1 个答案:

答案 0 :(得分:0)

您可以使用字典来计算频率。 Python允许使用元组作为字典键。

data = [259, 259, 192, 313, 259, 259, 192, 313]
yrs = [1910, 1910, 1910, 1910, 1911, 1911, 1912, 1912]
frequencies = {}
for idx in range(len(data)):
    key = (data[idx], yrs[idx])
    if key in frequencies:
        frequencies[key] += 1
    else:
        frequencies[key] = 1
data_with_freq = []
for key, freq in frequencies.iteritems():
    print (key[0], key[1], freq)
    data_with_freq.append((key[0], key[1], freq))