python - Sqlite 选择并创建新列
问题描述
我有一个名为“tweets_words_pairs”的表。下面附上表格的片段
我想计算一个单词在每条推文中出现的次数,然后将其添加到一个名为“word_count”的新列中。所以第一个 id 的示例输出片段如下所示
ID | 推文ID | 单词 | 字数 |
---|---|---|---|
1 | 1408411651238371337 | 三 | 1 |
2 | 1408411651238371337 | 不正确 | 1 |
3 | 1408411651238371337 | 假设 | 1 |
4 | 1408411651238371337 | 气候 | 1 |
5 | 1408411651238371337 | 改变 | 1 |
6 | 1408411651238371337 | 领带 | 1 |
这就是我现在拥有的
import sqlite3
import pandas as pd
df = pd.DataFrame() #create dataframe
conn = sqlite3.connect('tweets_data.sqlite')
curr = conn.cursor()
curr.execute("SELECT tweet_id, COUNT(word) FROM tweet_word_pairs")
rows = curr.fetchall()
for row in rows:
print(row)
但是我的输出(如下所示)是错误的,我不确定如何为表创建一个新列,因为我是这个的初学者
(1408411651238371337, 11802)
解决方案
GROUP BY
您的聚合查询中没有,因此聚合表达式COUNT(word)
针对整个表进行评估,而非聚合表达式tweet_id
针对随机行评估一次(这是 SQLite 功能)。
SELECT tweet_id, word, COUNT(*) AS word_count
FROM tweet_word_pairs
GROUP BY tweet_id, word
推荐阅读
- python-3.x - 在 Azure 中部署 Python-Flask api
- iphone - 加大尺寸 iPhone 的 UITableViewCell ContentView 尺寸问题
- jpa - 如何从实体中获取单个字段值的列表?
- angular-material - 字体选择器 - 棱角材料设计
- javascript - 为什么我的网页会为此 Google Charts JS 文件请求并获得 404?
- python - 在centos 6上安装django(sqlite3错误)
- payment-gateway - 如何在 Adyen Payment-Gateway 中启用授权
- javascript - 从数组中检索值的更简单方法
- python - 如何为 IBM Watson 的语音到文本服务 Web-socket 端点找到必要的访问 Web 令牌?
- sql-server - 如何在 SQL Server 中对时间列(毫秒)求和