熊猫:如何从DataFrame中删除重复的行并计算它们的频率?

Lau*_*ura 6 python duplicates pandas

我有一个创建的数据帧:

df1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                    'year':[2000,2001,1998,1999,1998,1998,2000]})
Run Code Online (Sandbox Code Playgroud)

具体如下:

    key    year
0    b    2000  
1    b    2001  
2    a    1998  
3    c    1999  
4    a    1998  
5    a    1998  
6    b    2000  
Run Code Online (Sandbox Code Playgroud)

我想以最快的方式获取每行的出现次数:

key  year    frequency  
b    2000    2  
b    2001    1  
a    1998    3  
c    1999    1        
Run Code Online (Sandbox Code Playgroud)

mkl*_*kln 5

通过做

df1.groupby(['key','year']).size().reset_index()
Run Code Online (Sandbox Code Playgroud)

你得到...

  key  year  0
0   a  1998  3
1   b  2000  2
2   b  2001  1
3   c  1999  1
Run Code Online (Sandbox Code Playgroud)

如您所见,该列尚未命名,因此您可以执行以下操作

mydf = df1.groupby(['key','year']).size().reset_index()
mydf.rename(columns = {0: 'frequency'}, inplace = True)

mydf

  key  year  frequency
0   a  1998          3
1   b  2000          2
2   b  2001          1
3   c  1999          1
Run Code Online (Sandbox Code Playgroud)

.reset_index()如果需要,您可以省略,但在这种情况下,您需要转换mydf为数据框,如下所示:mydf = pd.DataFrame(mydf),然后才重命名该列)