2025年初级数据分析-python(第一节数据存储)

初级数据分析-python(第一节数据存储)第一节数据存储 在大数据时代 各领域都为数据分析提供海量的数据源 数据可以分为非结构化数据 半结构化数据和结构化数据 对于数据分析师而言 工作中经常面对的数据格式有 excel 数据 JSON 数据 以及 SQLite 等数据库数据 因此 本章节将以这三种格式的数据为例 讲解数据的常用存取方法

大家好,我是讯享网,很高兴认识大家。

第一节数据存储

在大数据时代,各领域都为数据分析提供海量的数据源。数据可以分为非结构化数据、半结构化数据和结构化数据。对于数据分析师而言,工作中经常面对的数据格式有excel数据,JSON数据,以及SQLite等数据库数据。因此,本章节将以这三种格式的数据为例,讲解数据的常用存取方法。

  • 对于csv格式文件,可以用csv模块的csv.reader()方法读取,也可以利用pandas的read_csv()方法读取。
  • 对于xlsx和xls格式文件,可以用pandas和read_Excel()方法读取
  • 对于txt格式文件,可以用pandas的read_table()读取并导入文件。

一、CSV格式数据的导入

序号 天气 是否周末 是否有促销 销量
1
2
3
4
5
  1. 方法(1)使用csv.reader()的方式进行读取,代码如下:
    import csv with open('D:/大数据/items/10-5.csv','r',encoding='utf8')as csvfile:    reader=csv.reader(csvfile)    for row in reader:        print(row) ​

    讯享网

panda库和csv库的区别

  • panda输出的每一行,最前面的数字是行索引号
讯享网import pandas as pd df=pd.read_csv('D:/大数据/items/10-5.csv',encoding='utf8') print(df) ​

3.对于Excel数据的xls和xlsx的文件,可用pandas的read_Excel()方式导入

import pandas as pd import xlrd df=pd.read_excel("D:/大数据/items/10-5.xls") print(df)

这种方法需要安装xlrd库,并且xlrd库只支持xls文件(不支持xlsx文件)

二、JSON格式数据的导入

【例】某数据分析师通过队网站爬虫获取各个网站的用户数据sites.json,数据包括了用户的id,其访问的网站名,网站的url地址,以及用户所喜欢的产品,部分示例数据如下:

{

"id":["1","2","3"],

"name":["Google","Runoob","Taobao"],

"url":["www.google.com","www.runoob.com","www.taobao.com"],

"like":[11,22,33]

}

【解】如果从json文件中读取内容,利用python的loads()方法加载文件,需要注意的是,json.loads()读取的json字符串,因此需要先用read()方法读取文件“data.json”的每一行,然后利用loads()方法加载为字典形式**,程序语句如下:

讯享网import json with open('D:/大数据/items/10-5.json','r',encoding='utf-8')as file:    str=file.read()    data=json.loads(str)    print(data)

ps:注意json的格式

三、SQLite格式数据的导入

SQLite是一个软件库,实现了自给自足、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是在世界上最广泛部署的SQL数据库引擎。SQLite源代码不受版权限制。

【例】请采用python内置的sqlite数据库,创建一个sales_table的数据表包含时间,城市和销售值三个字段,三个字段的类型分别为文本型、文本型和实数型,并插入两条数据‘2021-01-10’,‘beijing’,10000和2020-01-10‘,’shanghai‘,15000。最后从数据库中查询sales_table中的所有数据样本。

【解】可以利用sqlite3的connect方法连接数据库,然后利用pandas的read_sql_query()方法读取数据库表格,程序代码如下所示:

import sqlite3 import pandas as pd with sqlites3.connect('text_database.sqlite')as con:    df = pd.read_sql_query('SELECT * FROM sales_table',con=con)    print(df)

四、txt文本格式数据导入

【例】戈丁的数据集abalone.txt 记录了鲍鱼的一些 比较容易获得的量测数据,一次为属性的名称、数据类型、单位和描述,如下表所示。

【解】用pandas模块的read_table()方法进行读取

讯享网import pandas as pd stock = pd.read_table('D:/大数据/items/shushu.txt',sep='\t') stock.head(n=2)意为读入数据前两行 ​

五、专业数据库平台的数据导入

【例】从yahoo数据源获取2015年1月1日至今宝洁公司(PG)的股票交易数据,交易数据包括最高价、最低价、开盘价、收盘价、成交量、调整收盘价、简单收益率。

【解】某些数据源平台提供了数据读取的接口api,如Tushare平台提供了get_hist_data方法读取股票数据,程序代码如下:

import tushare as ts ts.get_hist_data('',start='2021-01-05',end='2021-07-10')

第二节输出数据

  • 对于csv格式文件,python的csv模块库提供了csv.writer()方法对数据进行写入操作。
  • 对于xls和xlsx格式文件,python提供了xlsx文件的存取库slsxwriter和oopenpyxl,分别用于xlsx文件的写入和读取。
  • 对于txt格式文本,可以使用python的open方法打开文件,然后调用write()方法对文本文件进行写入输出。
  • 对于json格式文件,python提供了dumps()方法用于将json对象转换成字符串,然后再调用文件的write()方法写入文件并保存。


    讯享网

一、CSV格式数据输出

【例】利用CSV库提供的writer()方法,将新增的一行销售数据写入原文件sales.csv中,对元数据进行覆盖,并将其另存到备份文件stock_bake.csv中。

【解】csv库提供了writer()方法进行写入操作。具体来说,csv.writer(csvfile,dialect='Excel',fmtparams)方法可以将数据写入指定文件,其参数与csv.reader()方法中的参数含义相同。程序语句如下:

讯享网import csv with open('D:/大数据/items/10-5.csv','w')as csvfile:    writer = csv.writer(csvfile)    writer.writerow([57,'faker','mid','hati','forever']) print('数据输出完成!')

【解】采用pandas库中的to_csv()方法,也可以将数据存储为csv格式,程序语句如下所示:

import pandas as pd df = pd.read_csv('D:/大数据/items/10-5.csv',encoding='utf-8') df.to_csv('D:/大数据/items/10-5(2).csv') df1 = pd.read_csv('D:/大数据/items/10-5(2).csv') print(df1) 

输出结果:

讯享网Empty DataFrame Columns: [Unnamed: 0, 57, faker, mid, hati, forever] Index: []

二、xlsx格式数据输出

【例】对于上述问题,如销售文件格式为sales.xlsx文件,这种情况下该如何处理?

【解】python提供了xlsx文件的存取库xlsxwrite,用于xlsx的写入和读取。

import os import xlsxwriter data = xlsxwriter.Workbook('D:/大数据/items/10-5.xlsx') worksheet = data.add_worksheet('表1')sheet的名字 worksheet.write('A1',"57,'faker','hati','love','forever'") data.close() 

三、json格式数据输出

【例】某数据分析师通过对网站爬虫获取各个网站的用户数据sites.json,数据包括了用户的id,其访问的网站名,网站的url地址,以及用户所喜欢的产品,数据文件格式是sites.json格式,存储位置为D盘,这种情况下如何将一条形式如下的新记录,写入文件并进行保存?

【解】python提供了dumps()方法用于将json对象转换成字符串,然后再调用文件的write()方法写入文件并保存,程序语句如下:

讯享网import json data = [{ 'id':'57', 'name':'faker', 'adress':'soul', 'likes':'hati' }] with open('D:/大数据/items/10-5.json','w',encoding='utf-8')as file: 下面是最关键的一行 file.write(json.dumps(data,indent=2,ensure_ascii=False)) with open('D:/大数据/items/10-5.json','r',encoding='utf-8')as file: str = file.read() 用json.load()转换才能读取 data = json.loads(str) print(data) 

四、txt格式数据输出

【例】给定的数据集abalone.txt记录了鲍鱼的一些比较容易获得的量测数据,一次为属性的名称、数据类型、单位和描述,如下表所示。请利用python写入一条形式如下的数据,并保存。

性别 长度 直径 高度 整体重量 肉重量 内脏重量 壳重 年龄
0 0.35 0.25 0.07 0.1605 0.0715 0.0335 0.046 6

【解】可以使用python的open方法打开文件,然后调用write()方法对文本文件进行写入输出。

f=open('d:/大数据/items/shushu.txt','w') f.write("0,57,130,131,120,112,1103") f.close() 

注意:’w'输出方式将覆盖原有文件内容,如果想在文件尾部追加数据,可以使用‘a'

讯享网f=open('d:/大数据/items/shushu.txt','a') f.write("0,57,130,131,120,112,1103") f.close()

五、章节练习

1.餐饮企业的决策者想要了解影响餐厅销量的一些因素,如天气的好坏,促销活动,周末和非周末销量的区别。对于数据集sales.csv,为某餐厅收集的数据,请将其转换为txt格式后,利用python方法进行读取导入。

Pandas 数据的导入和导出

Pandas能从文本文件和Excel文件中读入数据,形成dataframe,也可以将dataframe导出到文本文件、Excel文件中存储起来。

导入函数有(1)pd.read_csv():导入后缀名为.csv,.txt的文本文件;(2)pd.read_excel():导入后缀名为.xlsx的Excel文件。

导出函数有(1)df.to_csv)():将数据存储到csv文件或txt文件中;(2)df.to_excel():将数据存储到Excel文件中;

无论是导入函数还是导出函数,都有参数 header,表示 dataframe 的列索引。而行索引在导入函数中用参数 index_col 表示,将某列指定为行索引;行索引在导出函数中用参数 index 表示,指示是否要存好行索引。

题目代码:

import pandas as pd df=pd.read_csv("d:/大数据/items/10-12.csv",encoding="gbk") print(df) df.to_csv("d:/大数据/items/10-14.txt") df=pd.read_csv("d:/大数据/items/10-14.txt",encoding="utf-8") print(df) 

2.对于本章给定的数据集 abalone.txt记录了鲍鱼(一种壳类水生生物)的一些比较容易获得的量测数据,依次为属性的名称,数据类型,单位和描述,请将其手动转换成csv和xlsx格式后,利用python进行读取和导入

讯享网import pandas as pd abalone = pd.read_table("d:/大数据/items/10-14.txt",sep="\t") print(abalone) abalone.to_csv("d:/大数据/items/10-14.csv") abalone.to_excel("d:/大数据/items/10-14.xls") abalone = pd.read_csv("d:/大数据/items/10-14.csv",sep="\t") print(abalone) abalone = pd.read_excel("d:/大数据/items/10-14.xls") print(abalone) 

3.请利用Tushare平台提供的get_hist_data()方法来获取2021年2月10日至2022年2月10日期间段内代码‘’为股票交易数据,交易数据包括:开盘价,最高价,收盘价,最低价,成交量,价格波动,涨跌幅,5日平均。。。等。

import tushare as ts data = ts.get_hist_data('',start='2022-2-10',end='2022-2-10') print(data)

4.对于给定的数据库文件test_database.sqlite,数据形式如下所示,请利用python对数据库中的sales_table文件读取导入。

讯享网import sqlite3 import pandas as pd with sqlite3.connect('test_database.sqlite') as con: df = pd.read_sql_query("SELECT * FROM sales_table",con=con) print(df) 

5.某数据分析师通过对网站爬虫获取哥哥网站的用户数据sites.json, 数据包括了用户id,其访问的网站名,url地址,用户喜欢的茶农。请利用python读入导入后,将结果保存并输出到d盘sites.csv格式文件中。

import json data = [{ 'id': '4', 'name': 'baidu', 'url': 'zhizhi', 'like':'shushu' }] with open('d:/大数据/items/10-14.csv','w',encoding='utf-8')as file: json.dump() :将python中的对象转化成json储存到文件中 indent表示缩进,ensure_ascii设置编码 file.write(json.dumps(data,indent=2,ensure_ascii=False)) 
小讯
上一篇 2025-02-23 08:01
下一篇 2025-02-28 14:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24860.html