pandas dataframe直接或间接读取mysql形式,保存txt格式

1、直接

import pymysql
import pandas as pd
from sqlalchemy import create_engine

def GetQueryByDF(sql):
    
    connect_info = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'\
        .format("user", "passwd", "hostname", "port","dbname")
    engine = create_engine(connect_info)
    result = pd.read_sql(sql, engine)
    return result

GetQueryByDF("select a.movie_num,a.title,a.language,a.area,a.director,a.type,a.tv_describe,(case a.vtype_sub when '0' then '电视剧' when '1' then '纪录片' end) as type,group_concat(b.crew_name SEPARATOR ',') as crew from hx_online_tv a join hx_crew_images_formal b on a.movie_num = b.movie_num GROUP BY b.movie_num;")

在这里插入图片描述

2、间接

import pymysql

import pandas as pd


conn = pymysql.connect(host='p', user='w', password='c', port=3306,
                    db='a')

cursor = conn.cursor()

hot = "select a.movie_num,a.movie_title,a.language,a.area,a.director,a.movie_type,a.movie_describe,a.duration,(case a.vtype_sub when '0' then '电影' when '1' then '纪录片' end),group_concat(b.crew_name SEPARATOR ',') from hx_online_movies a join hx_crew_images_formal b on a.movie_num = b.movie_num GROUP BY b.movie_num ;"
# hot="select * from hx_media_scrapy_info_201912 limit 5"
cursor.execute(hot)

results = cursor.fetchall()
conn.commit()
movies_info = list(results)


df = pd.DataFrame(movies_info,columns=['movie_num','movie_title','language','area',
                                   'director','movie_type','movie_describe','duration','type','crew_name'])

def combine(x):
    return x['movie_title'] + " " + x['language']+ " " + x['area']\
            + " " + x['director']+ " " + x['crew_name']+ " " + x['movie_describe']+ " " + x['type']+ " " + x['movie_type']
df['Combined_Data'] = df.apply(lambda x: combine(x),axis=1)

在这里插入图片描述

保存txt格式

datas['querytext'].to_csv('excel2txt.txt', sep='\t', index=False)

或者array保存形式

import numpy as np
np.savetxt("querys11.txt",datas['querys'].unique(),fmt = '%s')

open 一行一行保存形式

with open('bbb.txt',"a") as file: 
    for index,i in enumerate(list(ids_)):
        socre = list(datas[datas['queryid']==i]['socre'])[0]
        aid =  list(datas[datas['queryid']==i]['aid'])[0]
        file.write(str(socre) + " " + "qid:" + str(index+1)+ " # " + str(aid)+"\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loong_XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值