Python数据分析基础学习笔记(3)--传入文件(百职帮自用)

在大多数情况下,处理数据和分析数据时,我们的数据来源都是CSV文件 和Excel文件。

pandas的DataFrame有大量数据处理的方法,所以pandas会将数据读取为DataFrame对象,以便进行后续的数据处理操作

1.读取CSV文件

在pandas中,读取CSV文件主要使用pd.read_csv()函数。

将 必选参数 - CSV文件的路径传入该函数中,便可以得到对应的DataFrame格式的数据。

import pandas as pd
data = pd.read_csv(r"D:\Users\yequ\电商数据清洗.csv")
print(data)

使用Windows系统的同学在自己的电脑上运行代码时,需要注意路径前要加一个r表示字符串不需要转义。

1.1防止乱码

使用pd.read_csv()方法读取csv格式文件的时候,常常会因为csv文件中带有中文字符造成读取文件错误。

此时,我们可以将参数encoding设置为"utf-8"。

格式:encoding="utf-8"

import pandas as pd

data = pd.read_csv("/Users/order.csv",encoding="utf-8")

1.2 指定index

之前的例子中,我们在调用pd.read_csv()函数时没有单独定义index,所以读取出的DataFrame的index默认从0开始。

但往往在处理数据时需要更有意义的index,这会有利于我们对数据进行观察和分析。

比如,将 "order_id",也就是订单号这一列,指定为DataFrame的索引。

对于这种情况,pd.read_csv()函数提供了一个参数:index_col,将 列名作为字符串 传入该参数便可以指定index。

在这里,我们指定 "order_id" 这一列作为index。具体代码如下:

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd

# TODO 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件
# 并通过参数index_col来指定"order_id"列为index
# 将结果赋值给变量data
data = pd.read_csv("/Users/yequ/电商数据清洗.csv",index_col= "order_id")

# 使用print()输出变量data
print(data)

1.3读取指定列


现在,我们想要计算每个商品的平均客单价,具体的计算方式是:销售额/销量,也就是payment/items_count。

因为我们只需要用到 "payment" 和 "items_count" 这两列数据,那么在这样的情况下,读取数据中所有列的方式显然效率不够高并且非常消耗内存。

针对只需要读取数据中的某一列或多列的情况,pd.read_csv()函数提供了一个参数:usecols,将包含对应的columns的列表传入该参数即可。

比如,只读取 "payment" 和 "items_count" 这两列数据的具体代码如下:

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd

# TODO 使用pd.read_csv()函数和usecols参数
# 读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件里:
# "payment"和"items_count"这两列中的数据
# 并将结果赋值给变量data
data = pd.read_csv("/Users/yequ/电商数据清洗.csv",usecols = ["payment","items_count"])

# 使用print()输出变量data
print(data)

1.4 添加columns


如果CSV文件没有列名,那么使用pd.read_csv()函数就是从第一行直接开始数据的录入了。

这时,就需要给数据添加上columns的名称,让数据变得完整。

针对刚才的情况,pd.read_csv()函数提供了两个参数,分别是:

header=None,表明原数据中没有columns;

names,将包含columns的列表传入该参数即可给数据添加columns。

比如,给没有columns的CSV文件添加 "订单号","用户id","支付金额","商品价格","购买数量","支付时间" 作为columns的具体代码如下:

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd

# TODO 使用pd.read_csv()函数、header参数和names参数
# 读取路径为 "/Users/yequ/order_withoutColumns.csv" 的CSV文件
# 将数据的columns设置为:"订单号","用户id","支付金额","商品价格","购买数量","支付时间"
# 将结果赋值给变量data
data = pd.read_csv("/Users/yequ/order_withoutColumns.csv" ,header = None,names=["订单号","用户id","支付金额","商品价格","购买数量","支付时间"])

# 使用print()输出变量data
print(data)

2.保存CSV文件

对DataFrame对象使用to_csv()函数,将文件保存路径作为参数,即可将DataFrame保存到指定的文件路径,并存储为后缀名是.csv的文件。

如果指定路径的文件已经存在,使用to_csv函数会⚠️覆盖原有文件。

本例中,我们保存的指定路径为:/Users/yequ/电商数据清洗2.csv。

to_csv()函数和read_csv()函数类似,除了路径这个参数外,还有大量可选参数可以选用。

对于to_csv()函数,我们再简单了解2个可选参数。

2.1防止行索引信息写入第一列

设置参数index=False,保证不会将行索引信息写入第一列。

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd

# 使用pd.read_csv()函数和usecols参数
# 读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件里的"payment"和"items_count"这两列中的数据
# 并将结果赋值给变量data
data = pd.read_csv("/Users/yequ/电商数据清洗.csv", usecols=["payment","items_count"])

# 将data保存到指定路径
print(data)
data.to_csv("/Users/yequ/电商数据清洗2.csv",index = False)

2.2防止乱码

同样的道理,使用to_csv()函数,也有可能因为中文字符的编码问题,造成生成的csv文件乱码。

此时,我们可以将参数encoding设置为"utf-8-sig"。

格式:encoding="utf-8-sig"

3.EXCEL文件读取

3.1 安装xlrd模块

在学习读取Excel文件前,我们需要先安装一个用于读取Excel文件的辅助工具:xlrd 模块。

xlrd 模块可读取.xls和.xlsx文件。

在终端输入代码,pip install xlrd==1.2.0 即可安装 xlrd 模块。

如果电脑中同时存在Python 2 和 3,可能需要将pip改成pip3。也就是:

pip3 install xlrd==1.2.0
pip install openpyxl 

注意,同学们在本地安装时,会提醒大家先安装 openpyxl 模块,只需通过 pip install openpyxl 即可安装。

3.2读取Excel文件

在pandas模块中,读取Excel文件主要使用pd.read_excel()函数。

将 必选参数 - Excel文件的路径传入该函数中,便可以得到对应的DataFrame格式的数据。

3.2.1 读取指定工作表 - sheet_name

当我们需要读取指定工作表时,pd.read_excel()函数提供了一个参数:sheet_name,将要读取的工作表名称作为字符串传入该参数即可。

比如,读取 "销售订单数据" 这个工作表的具体代码如下:

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd

# 使用pd.read_excel()函数和sheet_name参数
# 读取路径为 "/Users/yequ/2019年4月销售订单.xlsx" 的Excel文件里:"销售订单数据" 这个工作表
# 并将结果赋值给变量data
data = pd.read_excel("/Users/yequ/2019年4月销售订单.xlsx",sheet_name="销售订单数据")

# 使用print()输出变量data
print(data)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值