python数据分析:数据载入、存储及文件格式

"""数据载入、存储及文件格式"""
"""
输入和输出常用的类型:读取文本文件及硬盘上其他更高效的格式文件、从数据库载入数据、与网络资源进行交互

"""
##6.1 文本格式数据的读写
"""
pandas有些函数将文本数据转换为DataFrame的机制,这类函数的参数主要有一下几种类型:
    索引、类型推断和数据转换、迭代、未清洗数据问题
"""
import pandas as pd

#text01
"""
a,b,c,d,message
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
"""
df1 = pd.read_csv("C:\\Users\\w\\Desktop\\1.csv.text")    #读取CSV文件
print(df1)

df11 = pd.read_table("C:\\Users\\w\\Desktop\\1.csv.text",sep=',') #使用read_table,并指定分隔符
print("\n")
print(df11)

#text02 不好含表头行的文件
"""
1,2,3,4,hello
5,6,7,8,world
9,19,11,12,foo

"""
df2 = pd.read_csv("C:\\Users\\w\\Desktop\\2.csv.text",header=None)
print("\n")
print(df2)

df22 = pd.read_csv("C:\\Users\\w\\Desktop\\2.csv.text",names=['a','b','c','d','message'])
print("\n")
print(df22)

#text03 messa列返回为DataFrame列的索引 -》 index_col='message'
"""
key1,key2,value1,value2
one,a,1,2
one,b,3,4
one,c,5,6
one,d,7,8
two,a,9,10
two,b,11,12
two,c,13,14
two,d,15,16
"""
names=['a','b','c','d','message']
df222 = pd.read_csv("C:\\Users\\w\\Desktop\\2.csv.text",names=names,index_col='message')
print("\n")
print(df222)

#text04 从多个列中形成一个分层索引 -》index_col=['key1','key2']
parsed = pd.read_csv("C:\\Users\\w\\Desktop\\3.csv.text",index_col=['key1','key2'])
print("\n")
print(parsed)

#text04  表的分隔符不是固定的解决办法 -》sep='\s+'
"""
   A B
aaa -0.12 -1.23
bbb 0.99 0.87
ccc -1.35 -4.55
"""
result = pd.read_table("C:\\Users\\w\\Desktop\\4.txt.text",sep='\s+')
print("\n")
print(result)

#text05 跳过某行 -》skiprows=[0,1]
df = pd.read_csv("C:\\Users\\w\\Desktop\\1.csv.text",skiprows=[0,1]) #跳过第一行和第二行
print("\n")
print(df)

#text06 缺失值处理
result = pd.read_csv("C:\\Users\\w\\Desktop\\5.csv.text")
print("\n")
print(result)
print("\n")
print(pd.isnull(result))#判断是否是缺失值

"""
na_values可以传入一个列表或一组字符串来处理缺失值
"""
result01 = pd.read_csv("C:\\Users\\w\\Desktop\\5.csv.text",na_values=['NULL'])
print("\n")
print(result01)

"""
在字典中,每列可以指定不同的缺失值
"""
sentinels = {'message':['foo','NA']}
result02 = pd.read_csv("C:\\Users\\w\\Desktop\\1.csv.text",na_values=sentinels)
print("\n")
print(result02)
##6.1.1分块读入文本文件
pd.options.display.max_rows = 10 #对Pandas的显示设置进行调整

result = pd.read_csv("")
print(result)

pd.read_csv("",nrows=5) #只读取一小部分

chunker = pd.read_csv("", chunksize=1000) #chunksize作为每一块的行数
print(chunker)

#6.1.2 将数据写入文本格式
data = pd.read_csv("文件")
data.to_csv("文件") #DataFrame的to_csv方法,将数据导出为逗号分隔的文件, Series也有o_csv方法

import  sys
data.to_csv(sys.stdout, sep='|') #用其他分割符分隔文件

data.to_csv(sys.stdout, na_rep = 'NULL') #用其他标识值对缺失值进行标注

data.to_csv(sys.stdout, index=False, header=False) #禁止行和列写入

data.to_csv(sys.stdout, index=False, columns=['a','b','c'] )#按照顺序写入列


#6.1.3 使用分隔模式
#绝大多数表型数据可以使用函数panndas.read_table 从硬盘中读取,在某些情况下需要时使用手动操作
#对任何带有单字符分隔符的文件,使用python的内建模块csv模块。

import csv

f = open("C:\\Users\\w\\Desktop\\2.csv.tex")
reader = csv.reader(f)

for line in reader:
    print(line) #for遍历产生元组

"""
将文件处理为自己需要的格式
"""
with open("文件 ") as f:
    lines = list(csv.reader(f)) #列表
    header, values = lines[0], lines[1:] #将数据拆分为列名和数据行

    data_dict = {h: v for h, v in zip(header, zip(*values))} #zip(*values)生成包含数据列的字典,字典中行转置成列
    print(data_dict)

"""
将CVS方言参数传入csv.reader的关键字参数
在无法使用csv模块分隔符的文件,使用split方法或正则表达式方法re.split行拆分和其他清理工作
使用csv.writer 手动写入被分隔的文件
"""

#6.1.4 JSON数据
"""
JSON 基本类型是对象(字典)、数组(列表)、字符串、数字、布尔值和空值,对象中所有键都必须是字符串

"""
import json #json 内置在python的标准库
result = json.loads("文件")

asjson = json.dumps(result) #json.dumps 将python对象转换为JSON

#将JSON 对象或对象列表转换为DataFrame或者其他格式
siblings = pd.DataFrame(result['siblings'], columns=['name','age']) #将字典构造的列表传入Dataframe构造函数,并选出数据字段的子集

"""
pandas.read_json 自动将JSON数据集按照指定次序转换为Series或DataFrame
对DataFrame和Serier使用to_json方法:从 pandas中将数据导出为JSON

"""

#6.1.5 XML和HTML:网络抓取
"""
网络爬虫后续学习

"""

在这里插入代码片
#6.2 二进制格式
"""
使用Python的内建的pickle序列模块进行二进制格式操作
to_pickle:将数据以pickle格式写入硬盘
read_pickle直接使用内建的pickle读取文件中的对象
pickle仅被推荐作为短期的存储格式

"""

#6.2.1 使用HDF5格式
"""
HDF:代表分层数据格式,每个HDF5文件可以存储读个数据集并且支持元数据
HDF5适用于处理不合适在内存中存储的超大型数据
HDFStore类作为接口
在本地处理大量的数据,PyTables和h5py

"""

#6.2.2 读取Excel文件
"""
Pandas支持通过EXcelFile类或Pand。read_excel函数来读取存储在EXcel文件中的表格形数据
"""

xlsx = pd.ExcelFile("文件.xlsx") #使用ExcelFile将路径传入

#将pandas数据传入到Excel
frame = pd.read_excel("文件")

writer = pd.ExcelWriter("文件.xlsx")
frame.to_excel(writer,'sheet1')

在这里插入代码片

#6.3 与Web API 交互

#6.4 与数据库交互
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

w要变强

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

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

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

打赏作者

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

抵扣说明:

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

余额充值