02pandas读取和保存数据的方法

一、pandas支持的数据格式

  1. pandas支持的数据格式

在这里插入图片描述

  1. 更多格式可以参考pandas官网

在这里插入图片描述

二、pandas常用数据读取方法

1. 准备工作

  1. 打开jupyter notebook界面,进入新建的文件夹

在这里插入图片描述

  1. 新建一个python文件

在这里插入图片描述

在这里插入图片描述

2. 代码示例

1.pandas数据读取常用的方法

主要介绍两种,其他方法参考官方文档

  1. read_csv():读取类型:txt、csv文件(一般是以英文符号逗号","为数据分隔符),csv文件的存储量较大,一般使用csv文件
  2. read_excel():excel一般超出一百多万的数据就不会再展示

在这里插入图片描述

2. read_excel 方法

(1)read_excel()方法:读取excel文件
df_excel = pd.read_excel('D:/WorkSpace/数据分析模拟数据/状态数据.xlsx',sheet_name='状态数据')

可以加参数sheet_name=‘’,表示打开第几个表

  1. sheet_name=None: 读取 Excel 文件中的所有工作表,并将每个工作表的数据作为 DataFrame 存储在字典中,键为工作表名称。

  2. sheet_name=‘sheet_name’: 只读取指定名称的工作表。

  3. sheet_name=0: 读取第一个工作表(可以用数字索引来指定工作表,0代表第一个表格)。

  4. 如果没有指定 sheet_name,pandas 会默认读取 第一个工作表。

(2)head()方法:展示数据
# head方法,展示数据的前多少条,默认是5
df_excel.head()

在这里插入图片描述

快捷键:shift+tab

在这里插入图片描述

(3)to_excel()方法:保存excel文件
  1. 保存单个sheet
#保存excel数据文件
df_excel.to_excel('D:/WorkSpace/数据分析模拟数据/测试保存excel文件数据.xlsx',sheet_name='测试sheet1')
# 如果调用同一个方法,路径与上面一样,会覆盖上面的文件 不会生成两个sheet表
# df_excel.to_excel('D:/WorkSpace/数据分析模拟数据/测试保存excel文件数据.xlsx',sheet_name='测试sheet2')

可以查看到excel保存成功

在这里插入图片描述

  1. 在同一个excel文件中写入多个sheet: ExcelWriter方法
#在同一个excel文件中写入多个sheet: ExcelWriter方法
writer = pd.ExcelWriter('D:/WorkSpace/数据分析模拟数据/测试保存多个sheet的excel文件书数据.xlsx')
df_excel.to_excel(writer,sheet_name='测试sheet3')
df_excel.to_excel(writer,sheet_name='测试sheet4')
#需要保存文件 方可生效
# pandas 的 ExcelWriter 类在最新版本的 pandas(>= 1.2)中,已经移除了 save() 方法。现在,保存 Excel 文件的正确方法是调用 writer.close(),而不是 save()。
writer.close()

可以查看到excel成功保存了两个sheet表

在这里插入图片描述

  1. 会话式保存多个sheet数据到同一个excel文件里
# 会话式保存多个sheet数据到同一个excel文件里
with pd.ExcelWriter('D:/WorkSpace/数据分析模拟数据/测试会话式保存多个sheet的excel文件书数据.xlsx') as writer:
    df_excel.to_excel(writer,sheet_name='测试sheet5')
    df_excel.to_excel(writer,sheet_name='测试sheet6')
    df_excel.to_excel(writer,sheet_name='测试sheet7')

保存结果如下:

在这里插入图片描述

3. read_csv方法

  1. 读取csv文件内容
# 读取csv格式的文件
df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv')
df_csv.head()

读取结果如下:

在这里插入图片描述

  1. 保存.csv格式的数据
# 保存csv格式数据
df_csv.to_csv('D:/WorkSpace/数据分析模拟数据/测试保存csv格式的数据.csv')

保存结果如下:

在这里插入图片描述

  1. 追加保存
# 保存csv格式数据
df_csv.to_csv('D:/WorkSpace/数据分析模拟数据/测试保存csv格式的数据.csv')
# 文件名已存在默认覆盖之前的数据
# df_csv.to_csv('D:/WorkSpace/数据分析模拟数据/测试保存csv格式的数据.csv')
#在同一个csv文件中追加保存数据
 # mode='a':追加 header=None:追加的时候不保存第二个表的表头
df_csv.to_csv('D:/WorkSpace/数据分析模拟数据/测试保存csv格式的数据.csv', mode='a',header=None)

由原来的九十多条数据编程一百多条

在这里插入图片描述

三、Pandas读取数据方法中的常用参数

1. read_csv()方法中常用的参数使用方法

1.header:表头

# header=None:默认表头也是数据
# header=0:默认第0行是表头
# header=1:默认第一行是表头,上面的数据都删掉
# header=[0,1]:复合表头  第0行和第1行都是表头
df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0)
df_csv.head()

在这里插入图片描述

2.names:表头名称

df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0, names=['a','b','c','d','e','f','g','h','i','j'])
df_csv.head()

在这里插入图片描述

3.index_col:把选中的列当成索引

默认情况索引为前面的数字

在这里插入图片描述

# index_col:把选中的列当成索引
df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0, index_col='所属周')
# 两种写法 可以用数字或表头字符
# df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0, index_col=0)
df_csv.head()

在这里插入图片描述

4.usecols:只读取需要使用的列,可以降低缓存

#usecols:
df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0, usecols=['所属周','被考核人工号','科室','直接上级姓名'])
# 查看有多少行多少列数据
print(df_csv.shape)
# 可以设置数字
# df_csv = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',header=0, usecols=[0,1,5,6])
df_csv.head()

在这里插入图片描述

5.chunksize:进行数据的分段读取

# 使用chunksize 参数来进行数据的分段读取,chunksize=10:每次读取10条
reader = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',chunksize=10)
# 存放迭代的数据
chunk = []
for c_data in reader:
    print(c_data.shape)
    chunk.append(c_data)

# 合并分段读取的数据
# axis=0:以行的形式将迭代的数据进行连接,axis=1以列的形式
df_all = pd.concat(chunk,axis=0)
print(df_all.shape)
df_all.head()

执行结果如下:

在这里插入图片描述

6.iterator:进行数据的分段读取

# 使用iterator参数进行数据的分段读取   iterator=True进行分段读取   默认是False
read_iterator = pd.read_csv('D:/WorkSpace/数据分析模拟数据/状态数据.csv',iterator=True)
chunks = []
# 不确定文件有多长时,不建议用for循环,每次循环都要计算次数
while True: #利用循环完会报错的机制 使用while True
    try:
        reader = read_iterator.get_chunk(10)
        print(reader.shape)
        chunks.append(reader)
    except:
        break
df_all = pd.concat(chunk,axis=0)
print(df_all.shape)
# df_all.head()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值