pandas 是否打印一列的频率摘要,该列需要另外两列才能计算出?

lstz6jyr  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(187)

我有其他的问题,我解决了,但这个问题在这里已经设置我回来了一点。
我有以下几列(实际文件中总共有50,000个数据):

Area        Date        SpeedOver        Risk     Accident   
Wendly    8/8/2010          15            L          No
Wendly    2/9/2010          35            L          Yes
Reet      1/5/2010          65            M          Yes
Reet      9/11/2010         10            M          Yes
Sarall    14/3/2010         18            M          No
Sarall    7/6/2010          23            H          No
Sarall    23/6/2014         25            H          Yes

我尝试根据2010年的事故打印前3个地点。因此输出应为:
第一个
但上面的代码打印的是日期本身和事故,而不是实际的地点名称,所以我有50%的正确率,但目前有点混乱。

jljoyd4f

jljoyd4f1#

首先需要合计事故数:


# select rows of 2010

# the original method can be used here

m1 = df['Date'].str.endswith('2010')

# m1 = df.index.year==2010

# identify rows with accidents

m2 = df['Accident'].eq('Yes')

# count the accidents of 2010

# keep the top 3

m2[m1].groupby(df['Area']).sum().nlargest(3)

输出量:

Area
Reet      2
Wendly    1
Sarall    0
Name: Accident, dtype: int64

相关问题