该题目来源于力扣:
题目要求:
表:Tweets
+----------------+---------+ | Column Name | Type | +----------------+---------+ | tweet_id | int | | content | varchar | +----------------+---------+ 在 SQL 中,tweet_id 是这个表的主键。 这个表包含某社交媒体 App 中所有的推文。
查询所有无效推文的编号(ID)。当推文内容中的字符数严格大于 15
时,该推文是无效的。
以任意顺序返回结果表。
查询结果格式如下所示:
示例 1:
输入: Tweets 表: +----------+----------------------------------+ | tweet_id | content | +----------+----------------------------------+ | 1 | Vote for Biden | | 2 | Let us make America great again! | +----------+----------------------------------+ 输出: +----------+ | tweet_id | +----------+ | 2 | +----------+ 解释: 推文 1 的长度 length = 14。该推文是有效的。 推文 2 的长度 length = 32。该推文是无效的。
思路流程:
看到字数要求,第一反应就是pandas特有的.str.len()函数来查询字数,但是注意,该函数返回的是布尔值,是一个pandas.Series对象,通常用来进行索引匹配。
代码实现:
import pandas as pd
def invalid_tweets(tweets: pd.DataFrame) -> pd.DataFrame:
#将查询的布尔值结果保存到a中
a=tweets['content'].str.len()>15
#将a作为查询条件查询源数据,赋值给b中
b=tweets[a]
#返回我们想要的数据
return b[['tweet_id']]