pandas数据读取与存储

常用数据的读取

读取csv文件

//如果包含中文路径,可能需要加上双斜杠,文件路径可以是相对路径或者绝对路径

import pandas as pd
data= pd.read_csv(‘D:\py_script\myCSV_01.csv’)

使用read_table读取数据

data= pd.read_table(‘D:\py_script\myCSV_01.csv’,sep=’,’,header=None,usecols=[1,2],names=[‘date’,‘power’],nrows=10)

其中,sep代表分隔符;header代表表头,默认不为空(以第一行作为表头,或者说列名),取None,表明全数据,无表头;usecols选取指定列,这里选定第2、3列;names用于指定列名;nrows代表取前多少行,这里取前10行。一般来说,只需要用sep参数就可以正确读取大部分文件了,像header这些参数一般用的比较少,只有在没有表头的时候才需要。

读取mysql数据(未使用ssh通道)

import pymysql
con =pymysql.connect(
host=‘localhost’,user=‘root’,password=‘root’,database=‘test’,port=3306,charset=‘utf8’)
sql_select = ‘select * from a’
df = pd.read_sql(sql_select, con)

其中,host是主机名,一般填写ip地址,user代表数据库用户名,password代表数据库密码,database代表需要连接的数据库名称,port代表端口,charset代表编码格式,一般使用utf8。

读取excel数据

//读取多个指定的excel文件tb1和tb2:

excel_data = pd.read_excel(path, sheet_name = [‘tb1’,‘tb2’])
print(‘tb1的数据为:\n’, excel_data[‘tb1’])
print(‘tb2的数据为:\n’, excel_data[‘tb2’])

读取Mongodb数据

import pymongo
import pandas as pd

//连接数据库,数据库中的表

client = pymongo.MongoClient(‘localhost’, 27017)
db = client[‘JD’]
table = db[‘iphoneX-comments’]

// 读取数据

data = pd.DataFrame(list(table.find()))

读取api接口数据

具体可参考:https://www.jianshu.com/p/00242d5e0480

import requests
token = ‘’‘your token number’’’
url = ‘http://freecityid.market.alicloudapi.com/whapi/json/alicityweather
payload = {‘cityId’: cityId, ‘token’: token}
headers = {‘Authorization’: ‘APPCODE {}’.format(appcode)}
r = requests.post(url, params=payload, headers=headers)

常用数据的存储

写入csv文件

// 将数据写入到csv文件中(csv文件写入效率比excel文件要高,除非需要使用excel做数据透视表,否则建议将数据存储到csv文件中)

df.to_csv(‘D:\py_script\myCSV_01.csv’,index = 0)

写入excel文件

// 将数据写入到excel文件中(可以使用循环+%s的用法进行批量写入)

df.to_excel(‘D:\下载\test.xlsx’,index = 0,sheet_name = [‘tb1’])

写入数据库中

// 将数据写入到数据库中

df.to_sql的正确用法:

(1)下面是正确的用法

from sqlalchemy import create_engine
conn = create_engine(‘mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8’)
df.to_sql(‘tb_name’, con=conn, if_exists = replace, chunksize=100)

(2)不正确的用法

import pymysql
con = pymysql.connect(host=‘10.129.22.113’,user=‘root’,passwd=‘root’,db=‘dbsheep’,
charset=‘utf8’)
df.to_sql(‘tb_name’, con=con, if_exists = replace, chunksize=100)
conn.close()

原因:根据库的文档,我们看到to_sql函数支持两类mysql引擎一个是sqlalchemy,另一个是sqlliet3.没错,在你写入库的时候,pymysql是不能用的!!!mysqldb也是不能用的,你只能使用sqlalchemy或者sqlliet3

(3)单条sql语句执行

cur = con.cursor() # 创建游标
sql = “增删改查的sql语句”
cur.execute(sql) # 执行sql语句,批量执行可用executemany
con.commit() # 提交到数据库执行(必须执行,否则数据库数据无法更新)
con.close() # 关闭数据库连接(必须释放连接,不然该表一直处于占用状态)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值