Views
表:
+---------------+---------+ | Column Name | Type | +---------------+---------+ | article_id | int | | author_id | int | | viewer_id | int | | view_date | date | +---------------+---------+ 此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键) 此表的每一行都表示某人在某天浏览了某位作者的某篇文章。 请注意,同一人的 author_id 和 viewer_id 是相同的。
请查询出所有浏览过自己文章的作者
结果按照 id
升序排列。
解题思路:
1.筛选出author_id = viewer_id的行
df = df[df['author_id']==df['viewer_id']]
2.筛选列
df = df[['author_id']]
3.更改列名
df = df.rename(columns = {'author_id':'id'})
4.删除重复行(可能存在一个作者多次浏览了自己的文章)
注:
subset:它指定应该考虑哪些列来查找重复项。如果未指定,将使用 DataFrame 中的所有列来识别重复项。在我们的情况下,我们将其设置为 ['author_id'] ,因此仅考虑author_id列中的重复项。
inplace:这是一个布尔参数,用于确定方法是否应该对原始 DataFrame 进行就地修改,还是返回一个删除了重复项的新 DataFrame。我们将其设置为 True,表示原地修改。
df = df.drop_duplicates(subset=['author_id'], inplace=True)
5.按照字段排序(默认是升序,及inplace=True)
df = df.sort_values(by='id')