【笔记】LeetCode计划——30天Pandas挑战(4)

简介: LeetCode1148题——文章浏览|

LeetCode1148题——文章浏览|

一、题目
image.png
此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)
此表的每一行都表示某人在某天浏览了某位作者的某篇文章。
请注意,同一人的 author_id 和 viewer_id 是相同的。
请查询出所有浏览过自己文章的作者,结果按照 id 升序排列。

二、官方题解与思路整理
行过滤法思路:
①找到判断作者是否评论了自己文章的条件,即 author_id 等于 viewer_id。根据此条件过滤所有 views 行,并确定满足条件的行。
②可能会在 author_id 列(例如,author_id = 4 的作者查看了他的文章多次)中遇到重复的作者,需要删除重复项。
③将 author_id 列重命名为id并按升序排序。

官方题解:

import pandas as pd

def article_views(views: pd.DataFrame) -> pd.DataFrame:
    df = views[views['author_id']==views['viewer_id']]#仅选择满足条件的行
    #仅保留包含唯一的'author_id'的行
    df.drop_duplicates(subset=['author_id'],inplace=True)
    #按'author_id'列升序排序DataFrame
    df.sort_values(by=['author_id'],inplace=True)
    #将'author_id'列重命名为'id'
    df.rename(columns={
   
   'author_id':'id'},inplace=True)

    df=df[['id']]

    return df

三、自己的记录
1、布尔索引允许我们通过使用布尔数组或条件来过滤 DataFrame。可以使用布尔值的 Series 或创建对于 DataFrame 中每一行都评估为 True 或 False 的条件。通过将这些布尔值或条件应用为 DataFrame 的索引,可以选择性地提取满足条件的行。
2、过滤后可能会在 author_id 列(例如,author_id = 4 的作者查看了他的文章多次)中遇到重复的作者。drop_duplicates() 方法可以选择不重复的 author_ids,即移除任何重复项。
3、drop_duplicates()方法的参数设置
①subset:它指定应该考虑哪些列来查找重复项。如果未指定,将使用 DataFrame 中的所有列来识别重复项。在我们的情况下,我们将其设置为 ['author_id'] ,因此仅考虑author_id列中的重复项。
②inplace:这是一个布尔参数,用于确定方法是否应该对原始 DataFrame 进行就地修改,还是返回一个删除了重复项的新 DataFrame。我们将其设置为 True,表示原地修改。

目录
相关文章
|
7月前
|
算法
炸了!力扣官方首发了这套1568页LeetCode算法刷题笔记(彩页版)
你知道现在LeetCode算法在大厂中的重要性吗? 前几天小编看了一个国内算法大神的短视频,他就在视频中指出了算法对当下无论是生活还是找工作中都是非常重要的! 没错这个人就是江湖人称“左神”的左程云老师 小编也简单看了一下一些比较知名互联网大厂的招聘,像阿里,字节,美团,京东,百度等都在简介明确写上了要求“算法精通”! 那么如何达到“算法精通”今天小编特意给大家分享出一套1568页的LeetCode算法刷题(彩页版)笔记,助力你早日在简历写上“算法精通”
炸了!力扣官方首发了这套1568页LeetCode算法刷题笔记(彩页版)
|
4月前
|
算法 Java 程序员
太全了!字节总监总结240道算法LeetCode刷题笔记
常言道「算法才是编程的灵魂」,不管是Java, python,还是PHP,都跨不过算法这个门槛。
|
6月前
|
存储 算法 Java
刷爆Leetcode!字节算法大佬进阶专属算法笔记:GitHub标星97k+
数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。
|
7月前
|
SQL Python
【笔记】LeetCode计划——30天Pandas挑战(5)
LeetCode1683题——无效的推文
44 0
|
7月前
|
索引 Python
【笔记】LeetCode计划——30天Pandas挑战(3)
LeetCode183题——从不订购的客户
100 1
|
7月前
|
Python
【笔记】LeetCode计划——30天Pandas挑战(2)
LeetCode1757题——可回收且低脂的产品
65 1
|
7月前
|
Python
【笔记】LeetCode计划——30天Pandas挑战(1)
LeetCode595题——大的国家 记录自己的学习心得以及解题时学到的知识和要注意的点
118 0
|
8月前
|
算法 Java 程序员
太全了!字节总监总结240道算法LeetCode刷题笔记
常言道「算法才是编程的灵魂」,不管是Java, python,还是PHP,都跨不过算法这个门槛。 许多小伙伴看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。
|
10月前
|
存储
LeetCode刷题笔记
LeetCode刷题笔记
|
10月前
|
存储 编译器 C语言
LeetCode刷题笔记
LeetCode刷题笔记