【Pandas】读取、保存表格(.xls / .xlsm / .xlsx)文本(.csv / .txt)

Pandas读取、保存文件

  • Pandas读取文件
    • 读取.csv文件
    • 读取表格文件(.xls .xlsm .xlsx)
      • 读取单个Sheet(工作表)
      • 读取多个Sheet
  • Pandas保存文件
    • 保存为.csv文件
    • 保存为表格文件
      • 保存一个Sheet
      • 保存多个Sheet

Pandas读取文件

import pandas as pd

pandas读取文件的语法: pandas.read_xxx 、 xxx指的是文件的类型。

读取.csv文件

csv_DataFrame = pd.read_csv(
    filepath_or_buffer='./data.csv',  # 文件的路径 + 名称
    sep=',',  # 分隔符 ---默认就是 ','
    delimiter=',', # 分隔符,---sep 和 delimiter只需要指定一个即可!
    encoding='gbk',  # 文件的编码格式
    header=0,  # 列索引---默认infer(自动识别); 可以强制指定行下标 将该行作为列索引
    # header=[0,1],  # 也可以传入列表 指定多行作为列索引,在列表中指定行索引
    index_col=0,  # 行索引---默认为None(自动生成序号作为行索引);也可以指定列下标 将该列作为行索引
    # index_col=[0,"column"],  # 同也可以传入列表 指定多列作为行索引,在列表中指定列索引 或 列名称(可混用)
    usecols=[0, 1, 2],  # 指定要读取的列,可传入列索引 或 列名称(不可混用)
    names=['aaa','bbb','ccc'], # 设置新的列索引名称
    nrows=10,  # 读取指定的行数
    skiprows=100,  # 先略过前100行,然后再继续读取
    engine='python',  # 指定读取所用的引擎
)
print('csv_DataFrame:\n', type(csv_DataFrame))  # 	读取的数据是DataFrame结构

读取表格文件(.xls .xlsm .xlsx)

读取单个Sheet(工作表)

detail = pd.read_excel(
    io='./data.xls',  # 文件的路径 + 名称
    sheet_name=0,  # 表示读取第0个sheet,默认为0
    header=0,  # 以第0行作为列索引 可以参考csv
    # names=[....],  # 给数据起新的列索引 可以参考csv
    # index_col=[...],  # 以指定的列作为行索引 可以参考csv
    # …………
    # 其他参数 可以参考csv理解!
)
print('detail:\n', type(detail))	#  

读取多个Sheet

# 读取excel中指定的 sheet
fp = pd.read_excel(
    io='./data.xls',
    sheet_name=[0,1],  # 传入列表,指定Sheet索引
)
print('fp的类型:', type(fp))  #  	--字典,Key为Sheet的索引(与sheet_name相同),Value为DataFrame
# 获取所有的 key:可使用 detail.keys()输出所有Key
print('fp中所有的key:', fp.keys())	# dict_keys([0, 1])
# 分别获取 数据
detail1 = fp[0]
detail2 = fp[1]



# 一次读取excel中所有的 sheet
fp = pd.read_excel(
    io='./data.xls',
    sheet_name=None,  # 如果给None,则表示读取所有的sheet
)
print('fp的类型:', type(fp))  #  ---类字典, Key为Sheet名称,Value为DataFrame
# 获取所有的 key:可使用 detail.keys()输出所有Key
print('fp中所有的key:', fp.keys())	# dict_keys(['Sheet1', 'Sheet2'])
# 分别获取 数据
detail1 = fp['Sheet1']
detail2 = fp['Sheet2']

Pandas保存文件

保存为.csv文件

csv_DataFrame.to_csv(
    path_or_buf='./data.csv',  # 保存的路径 及名称
    sep=',',  # 分隔符
    columns=['aaa'],  # 指定要保存的列,必须用列名称,默认为None(保存全部)
    header=True,  # 是否保存列索引,默认为True
    index=False,  # 是否保存行索引,默认为True
    mode="w",  # 保存的模式--默认是写模式(w)--覆盖之前的! ---a 追加模式
)

保存为表格文件

保存一个Sheet

detail.to_excel(
    excel_writer='./data/aaa.xls',  # 可以是文件的路径+名称  或者是 excel_writer对象
    sheet_name="SheetName",  # 保存的sheet的名称
    header=True,
    index=False,
    # columns=[....],  # 指定要保存的列
)

直接保存—只能保存一个sheet,后续的会将前面的覆盖掉!

保存多个Sheet

如果想要在一个excel中保存多个sheet的数据 —需要借助 excel_writer对象

# 1、生成 excel_writer对象
writer = pd.ExcelWriter(
    path='./data.xls',
)
# 2、将数据写入 excel_writer对象
detail1.to_excel(
    excel_writer=writer,
    sheet_name='sheet1'
)
detail2.to_excel(
    excel_writer=writer,
    sheet_name='sheet2'
)
# 3、进行保存 excel_writer对象
writer.save()

# 4、关闭excel_writer对象
writer.close()

你可能感兴趣的:(Pandas,python,数据挖掘,数据分析)