如何用Python Pandas实现该SQL推文关键词筛选与列生成逻辑?
当然可以用Pandas实现完全一样的功能!我来给你一步步拆解具体怎么做:
使用Pandas实现等效的SQL查询
首先,确保你已经安装了Pandas(如果还没装,直接在终端跑pip install pandas就行)。
步骤1:导入Pandas并读取数据
先把你的TweetData表加载到Pandas的DataFrame里。如果数据存在CSV文件里,可以这么读;如果是从数据库直接读取,也可以用pd.read_sql()直接连库读取:
import pandas as pd # 从CSV读取示例(根据你的数据源调整) tweet_df = pd.read_csv("tweet_data.csv") # 如果从数据库读取,示例(需先建立数据库连接) # import sqlite3 # conn = sqlite3.connect('your_database.db') # tweet_df = pd.read_sql("SELECT * FROM TweetData", conn)
步骤2:筛选数据并添加目标列
这一步就对应你SQL里的WHERE过滤和新增列操作:
# 筛选同时包含'camera'和'amazing'的推文(默认不区分大小写,要区分的话去掉case=False) filtered_tweets = tweet_df[ (tweet_df['Tweets'].str.contains('camera', case=False)) & (tweet_df['Tweets'].str.contains('amazing', case=False)) ].copy() # 用copy避免后续修改时的警告 # 添加CameraQuality列,值固定为'Camera Quality' filtered_tweets['CameraQuality'] = 'Camera Quality' # 只保留我们需要的两列,和原SQL的SELECT结果完全一致 result = filtered_tweets[['Tweets', 'CameraQuality']]
补充说明
str.contains()就对应SQL里的LIKE '%xxx%',case=False是让匹配不区分大小写,如果你的原SQL是严格区分大小写的,把这个参数去掉就行。- Pandas里用
&表示逻辑“与”,注意每个条件都要用括号括起来,不然会触发运算优先级报错。 - 如果想直接查看结果,加一行
print(result)或者在Jupyter环境里直接输出result就行。
内容的提问来源于stack exchange,提问作者Rizwan Ahmad
相关产品推荐
相关产品推荐

