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")