如何查询来自couchdb的文档并将它们加载到熊猫数据框中?
我已经在本地的couchdb服务器上下载了Twitter数据。 它被保存为json文件。如何查询来自couchdb的文档并将它们加载到熊猫数据框中?
我使用此代码在python中输入数据库。 第一次导入库
import couchdb
import pandas as pd
from couchdbkit import Server
import json
import cloudant
下次连接到服务器,然后选择我要进入数据库。
dbname = couchdb.Server('http://localhost:5984')
db = dbname['Test']
server = couchdb.Server('http://localhost:5984')
我可以使用python创建和删除数据库,但是我不知道如何将数据从服务器放到jupyter笔记本上。 我想通过转发文本和时间来分析它。 我只能看到一个来自python的JSON文件。
如果可能的话,我想在数据库中添加所有JSON数据到python中的pandas数据框,这样我就可以在R中分析它。
问题是:如何查询文档并将它们加载到熊猫数据框中?
来自CouchDB数据库的所有文档都可以从/{db}/_all_docs
端点以include_docs
查询属性提取。响应是一个json对象,其中列出了rows
字段中的所有文档。
您可以使用requests
包直接与CouchDB的工作,然后用pandas.read_json
加载响应为熊猫或使用couchdb
包转换JSON为Python对象的内部,然后直接装入反应,即做这样的事情:
import couchdb
import pandas as pd
couch = couchdb.Server('http://localhost:5984')
db = couch['Test']
rows = db.view('_all_docs', include_docs=True)
data = [row['doc'] for row in rows]
df = pd.DataFrame(data)
请注意比读一个完整的数据库到内存中可能是资源征税,所以你可能要考虑_all_docs
终点的skip
和limit
查询参数读取较小的批次信息。
我能够像你所建议的那样,在熊猫上以数据框的形式加载json。有一件事,在json里面是另一个带有字典的json文件。例。列名称是实体并在其内部{u'symbols':[],u'user_mentions':[{u'indices':[0,14],u'id':305734622,u'id_str':u'305734622 ',u'name':u'Charles Watts',u'screen_name':u'name_'},{u'indices':[15,24],u'id':845149392,u'id_str':u' 845149392',u'name':u'name_',u'screen_name':name'}],u'hashtags':[],u'urls':[]}如何将这些添加为数据框? – Tateishi
这取决于您想要在最后获得的数据帧的结构。熊猫的数据框是二维结构,因此在将结果数据传递到熊猫之前,需要将'row ['doc']'转换为期望的形状,同时循环行。 – eiri
你能解释_'doc'_的含义吗? – Tateishi
这里有什么问题?你想将沙发文档转储为CSV?你想查询文件并将它们加载到熊猫数据框中? –
谢谢你的评论。如何查询文档并将它们加载到熊猫数据框中? – Tateishi