首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python之数据加载、存储与文件格式

斑点鱼将《利用python进行数据分析》中的第六章整理了一下,看完基本可以对数据的读取和输出游刃有余。接下来的文章也是针对其他章节的整理,希望大家可以跟着斑点鱼一起学习丫~

一、读写文本数据格式

#原数据data,大家可以随意创建一个data.csv文件读取

1.读取文本数据格式

import pandas as pd

import os

os.chdir('C:\Users\E440\Desktop\PythonStudy\input')

os.getcwd()

df=pd.read_csv('data.csv')

df=pd.read_table('data.csv',sep=',')

df=pd.read_csv('data.csv',names=['a','b','c','message'])

df=pd.read_csv('data.csv',index_col='message')#这样横索引就是message

2.将数据写出到文本格式

df.to_csv('out.csv')

df.to_csv('out.csv',index=False,header=False)

3.手工处理分隔符格式

%读取文件

import csv

f=open('data.csv')

reader=csv.reader(f)

for line in reader:

print line

lines=list(csv.reader(open('data.csv')))

header,value=lines[0],lines[1:]

data_dict=

data_dict

#新分隔符

class my_dialect(csv.Dialect):

linterminator='\n'

delimiter=';'

quotechar='"'

reader=csv.reader(f,dialect=my_dialect)

reader=csv.reader(f,delimiter='')

%输出文件

with open('data.csv','w') as f:

writer=csv.writer(f)

writer.writerow(('one','two','three'))

writer.writerow(('1','2','3'))

writer.writerow(('1','2','3'))

writer.writerow(('1','2','3'))

4.XML&HTML:Web信息收集

获取URL,首先用urllib2将其打开,再用lxml解析

from lxml.html import parse

from urllib2 import urlopen

parsed=parse(urlopen('http://car.bitauto.com/geely/?WT.mc_id=bdaldb__34'))

doc=parsed.getroot()

##得到该文档中所有URL链接,HTML中链接是a标签

links=doc.findall('.//a')

links

lnk=links[28]

lnk

lnk.get('href')#得到url

lnk.text_content()#得到链接文本

##得到全部URL

urls=[lnk.get('href') for lnk in doc.findall('.//a')]

urls[-10:]#最后第10个到最后

##得到表格

tables=doc.findall('.//table')

#标题行

calls=table[9]

#数据行

rows=calls.findall('.//tr')

#单元格th,td

def _unpack(row,kind='td'):

elts=row.findall('.//%s'%kind)

return [val.text_content() for val in elts]

_unpack(rows[0],kind='th')

_unpack(rows[1],kind='td')

二、使用html和web api

import requests

resq=requests.get(url)

resq

resq.text

import json

data=json.loads(resq.text)

data.keys

三、使用数据库

import sqlite3

query="""

create table test

(a varchar(20),b varchar(20),c real,d integer);"""

con=sqlite3.connect(':memory:')

con.execute(query)

con.commit()

data=[('china','a',1,6),('america','b',2,3),('uk','c',3,4)]

stmt="insert into test values(?,?,?,?)"

con.executemany(stmt,data)

con.commit()

cursor=con.execute('select * from test')

rows=cursor.fetchall()

rows#得到的是元组

cursor.description#构造dataframe,需先构造列名

pd.DataFrame(rows,columns=zip(*cursor.description)[0])

#上面一步太复杂,下面简化步骤

sql.read_sql_query('select * from test',con)

#read_sql_table:Read SQL database table into a DataFrame

#read_sql_query:Read SQL query into a DataFrame

一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209G0YW9G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券