感觉还是另外开一篇文章写关于去重,这里说的并不是使用"drop_duplicates()"的用法哟。
这是因为drop_duplicates() 只会一刀杀,对于一些超过一个data的行,就没法做到保留其中一个的功能了。
- 复习如何运用 value_counts() 进行计数的请查看: https://mp.youkuaiyun.com/postedit/85029009
以下开始进入正题。
>>>country_counts
America 10
America England 1
England America 2
Canada America Hongkong 1
Korea 3
如同上图,我们可以看到“America England” 与 "England America" 只是顺序改变了。在爬虫豆瓣电影的过程中,其实这两个数据都是等同的,都是等于合作电影的国家名字。
当某些情况下,我们只需要统计他们的共同次数的时候,那怎么做呢?
最终的效果应该如同以下那样。
America 10
America England 3
Canada America Hongkong 1
Korea 3
那么就是运用sorted来去重了。
使用的方法如下:
data = [
['America',10],
['America England', 1],
['England America', 2],
['Canada America Hongkong',1],
['Korea', 3]
]
df = pd.DataFrame(data,columns=['a','b'])
df['a'] = df['a'].apply(lambda x:str(sorted(x.split(' '))))
print(df.groupby('a').sum())
那么如果你这个df是之前经过数据处理了的,我们怎么把value_counts()的结果转换为Dataframe并设置列名呢?
这种时候就可以利用 rename_axis 跟 reset_index来达到这个目的了:
country_df = country_counts.rename_axis('country').reset_index(name = 'counts')