表:Tweets
+----------------+---------+ | Column Name | Type | +----------------+---------+ | tweet_id | int | | content | varchar | +----------------+---------+ 在 SQL 中,tweet_id 是这个表的主键。 这个表包含某社交媒体 App 中所有的推文。
查询所有无效推文的编号(ID)。当推文内容中的字符数严格大于 15
时,该推文是无效的。
以任意顺序返回结果表。
解题思路:
1.字符数长度
tweets['str_len'] = tweets['content'].apply(lambda x:len(str(x)))
2.根据字符数长度筛选行
df = tweets.loc[tweets['str_len']>15,['tweet_id']]
注:loc用法
下面是一些常见的loc
用法示例:
1.选择所有行和特定列:
df.loc[:, 'col1'] # 选择所有行的'col1'列
df.loc[:, ['col1', 'col2']] # 选择所有行的'col1'和'col2'列
2.根据条件选择行:
df.loc[df['col1'] > 10] # 选择'col1'大于10的所有行
df.loc[(df['col1'] > 10) & (df['col2'] < 5)] # 选择'col1'大于10且'col2'小于5的所有行
3.选择特定行和列:
df.loc[3, 'col1'] # 选择第4行的'col1'列值
df.loc[[1, 3, 5], ['col1', 'col2']] # 选择第2、4、6行的'col1'和'col2'列值
需要注意的是,loc
使用的是闭区间,即包含开始和结束位置。例如,loc[1:3]
会选择索引为1、2和3的行。
iloc用法,与loc
不同,iloc
使用的是整数位置而不是标签。
下面是一些常见的iloc
用法示例:
1.选择特定行和列:
df.iloc[0] # 选择第一行的所有列
df.iloc[0, 2] # 选择第一行第三列的值
df.iloc[[0, 2, 4], [1, 3]] # 选择第一、三、五行的第二、四列的值
2.切片选择行和列:
df.iloc[1:5] # 选择第二至第五行的所有列
df.iloc[:, 1:4] # 选择所有行的第二至第四列的值
df.iloc[1:5, 2:4] # 选择第二至第五行的第三至第四列的值
需要注意的是,切片操作在iloc
中使用的是半开区间,即开始位置包含在内,结束位置不包含在内。例如,iloc[1:5]
会选择索引为1、2、3和4的行,但不包括索引为5的行。