gpt4 book ai didi

python - 计算列表中项目的频率

转载 作者:行者123 更新时间:2023-12-01 05:16:51 26 4
gpt4 key购买 nike

我想计算每年每个地区的事故发生频率。我怎样才能使用 Python 做到这一点。

文件.csv

Region,Year
1,2003
1,2003
2,2008
2,2007
2,2007
3,2004
1,2004
1,2004
1,2004

我尝试使用计数器,但它仅适用于一列。例子:在 2003 年的区域 1 中,有 2所以结果应该是:

 Region,Year, freq
1,2003,2
1,2003,2
2,2008,1
2,2007,2
2,2007,2
3,2004,1
1,2004,3
1,2004,3
1,2004,3

我尝试这样做。但这似乎不是正确的方法。

from collections import Counter

data = pandas.DataFrame("file.csv")
freq_year= Counter(data.year.values)
dz = [dom[x] for x in data.year.values]
data["freq"] = data["year"].apply(lambda x: dom[x])

我正在考虑使用 Groupby。你知道如何做到这一点吗?

最佳答案

可能有更好的方法,但我首先附加一个虚拟列并根据该列计算freq,例如:

df["freq"] = 1
df["freq"] = df.groupby(["Year", "Region"]).transform(lambda x: x.sum())

这将返回以下 df:

  Region  Year  freq
0 1 2003 2
1 1 2003 2
2 2 2008 1
3 2 2007 2
4 2 2007 2
5 3 2004 1
6 1 2004 3
7 1 2004 3
8 1 2004 3

关于python - 计算列表中项目的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com