常用数据库查询结果处理

cx_Oracle 操作oracle数据库:

import cx_Oracle
def myoracle():
    conn = cx_Oracle.connect('user/password@ip:host/ServiceName')  # 连自己的数据库,连接参数可以组合写也可以分开写
    cur = conn.cursor()
    sql = "desc table"#查询表结构
    cur.execute(sql)
    selects = cur.fetchall()
    col = ['名称','是否为空','类型']#oracle中默认的
    data = pd.DataFrame(selects,columns=col)
    # data.drop_duplicates("title",'first',inplace=True)
    data.drop_duplicates('summary','first',inplace=True)#去除某列中的重复行,且去重方式为保留第一次出现的重复数据
    return data
data = myoracle()


pymql操作mysql数据库:

import pymysql
def mysql():
    db = pymysql.connect("ip",user = 'user',password='password',database='test',charset='utf8',)#打开数据库连接
    cursor = db.cursor() #获取操作游标
    cursor.execute('desc table')#运行SOL语句
    #获取游标查询结果,并组建为dataframe
    descselects = cursor.fetchall()#接收返回的结果
    descselects = list(descselects)
    col =['field','Type','Null','Key','default','Extra']#mysql默认的
    tableframe = pd.DataFrame(descselects,columns=col)
    table_columns = tableframe['field']#获取所有列
    cursor.execute('select * from table')#查询表数据
    selects = cursor.fetchall()
    selects = list(selects)
    data = pd.DataFrame(selects,columns=table_columns)
    # table.to_csv('expert.csv',index_label=0,encoding='utf8')#输出为文件
    return data
data = mysql()


py2neo中Graph操作Neo4j数据库

from py2neo import Graph

graph = Graph("http://ip:host/", username='username', password='password')

def myneo4j(graph):
    cypher = "match (n:label) return id(n) as id,n.name as name,labels(n)[0] as labels"#查询某一类标签中的节点id,name,以及标签
    data = graph.run(expertcypher).data()
    return data
data = myneo4j(graph)

elasticsearch-py中Python操作ES数据库

pip install elasticsearch

连接ES数据库:

from elasticsearch import Elasticsearch

es = Elasticsearch(hosts=["localhost:9200"])

接下来就可以进行各种操作了,比如创建索引、插入数据、查询数据等等。

创建索引

index_name = "my_index"

es.indices.create(index=index_name)

插入数据

doc = {
    "title": "Python Elasticsearch Tutorial",
    "author": "John Doe",
    "content": "This is a tutorial on how to use Elasticsearch with Python."
}

es.index(index=index_name, body=doc)

查询数据:

query = {
    "query": {
        "match": {
            "content": "Elasticsearch"
        }
    }
}

result = es.search(index=index_name, body=query)

print(result)

 es 聚合查询:

from elasticsearch import Elasticsearch

es = Elasticsearch(hosts=["localhost:9200"])

index_name = "my_index"

# 聚合查询
aggs_query = {
    "aggs": {
        "group_by_author": {
            "terms": {
                "field": "author.keyword"
            },
            "aggs": {
                "avg_views": {
                    "avg": {
                        "field": "views"
                    }
                }
            }
        }
    }
}

result = es.search(index=index_name, body=aggs_query)

# 输出结果
for item in result["aggregations"]["group_by_author"]["buckets"]:
    author = item["key"]
    avg_views = item["avg_views"]["value"]
    print("Author: {}, Avg Views: {}".format(author, avg_views))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值