使用使用pandas进行进行excel文件的读取写入文件的读取写入
pandas的DateFrame类似于excel的数据储存结构,故为了便于pandas进行数据处理,设计者提供了简便的方法进行数据的读
取,下面写上代码
import pandas as pd
import numpy as np
def save_excel(arr, exc_filename=None): #读取excel的函数
"""Save the data in excel format"""
if exc_filename == None:
exc_filename = "excel.xlsx"
arr_df = pd.DataFrame(arr)
np_arr = np.array(arr)
arr_r, arr_c = np_arr.shape
arr_r_b = len(str(arr_r)) #行数的个数,3位数还是4位数
arr_c_b = len(str(arr_c))
list_index = [] list_columns = [] for ii in np.arange(arr_r):
x_str = 'Y' + str(ii).zfill(arr_r_b) # The number of digits is not enough to automatically zero
list_index.append(x_str)
arr_df.index = list_index #建立列索引
for ii in np.arange(arr_c):
y_str = 'X' + str(ii).zfill(arr_c_b)
list_columns.append(y_str)
arr_df.columns = list_columns #建立行索引
writer = pd.ExcelWriter(exc_filename)
arr_df.to_excel(writer, 'page_1', float_format='%.8f')
writer.save()
df = pd.read_excel(r"excel.xlsx",sheet_nam = 0,index_col = 0,head=0,nrows = 5)
#sheet_name: excel文件中的表名
#index_col: 使用哪一列作为行索引,默认从0开始
#header: 哪一行设置为列索引,默认是第一行,即header = 0
#usecols: 读取表格中哪几列,必须是位置索引
#date_parser:解析日期的函数
#parse_dates:尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组
列号或者列名
#names: 列索引
#engine: 默认是C,如文件路径存在中文时,engine= "python"
#encoding: 默认是utf-8,还可以是gbk
#skiprows: 跳过前几行读取文件,默认从0开始
#nrows: 读取多少行数据
#converters: 列名跟函数之间的映射关系组成的字典
下面是附加对csv文件的操作
def save_csv(arr,csv_filename=None):
"""save data in sv format"""
if csv_filename == None:
csv_filename = 'csv.csv'
arr_df = pd.DataFrame(arr)
arr_df.to_csv(csv_filename,float_format='%.3f',index=False,header =False)
df = pd.read_csv(r"D:\迅雷下载\示例txt.csv",encoding = "gbk",engine = "python",nrows= 5,index_col = "用户id")
借鉴:python学习之路–pandas读写文件
作者:python的男人
评论1