從excel中讀取資料,儲存到對應檔案,並進行視覺化
技術標籤:pythonnumpy資料分析機器學習windows
1.首先需要呼叫NumPy和pandas
NumPy是Python中科學計算的基礎包。它是一個Python庫,提供多維陣列物件,各種派生物件(如掩碼陣列和矩陣),以及用於陣列快速操作的各種API,有包括數學、邏輯、形狀操作、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數,基本統計運算和隨機模擬等等。
pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。你很快就會發現,它是使Python成為強大而高效的資料分析環境的重要因素之一。
pandas和numpy的關係:numpy是列表,pandas是字典,pandas基於numpy構建。
import pandas as pd
import numpy as np
2.讀取表格並得到表格行列資訊
表格如下
df=pd.read_excel('test.xlsx')
height,width = df.shape
print(height,width,type(df))#得到如下輸出,為一個5行5列的資料塊,為DataFrame格式:
print(df)#直接print(df)得到的結果
對比結果和表格,很顯然表格中的第一行(英文部分)被定義為資料塊的列下標,而實際視作資料的是後四行;並且自動在表格第一列之前加了一個行索引{0,1,2,3,4}。
3.提取資料放入陣列中
x = np.zeros((height,width))
for i in range(0,height):
for j in range(1,width+1): #遍歷的實際下標,即excel第一行
x[i][j-1] = df.iloc[i,j-1]
print(x.shape)
print(x)
用np.zeros()
方法定義一個初試值全為0的二維陣列(需要匯入numpy庫),用df.iloc[i,j]
讀取資料並複製入二維陣列中,其中for i in range(0,height)
迴圈表示從下標0到下標height-1(不包含height),得到的輸出如下:
3.將numpy陣列寫入Excel檔案
將檔案寫入excel表格中
new_data = pd.DataFrame(x)
# 更改表的索引
new_data.columns = ['x','y','t','n','p'] #將第一行的0,1,2,...,9變成x,y,t,...
new_data.index = ['1','2','3','4','5']
# 將檔案寫入excel表格中
writer = pd.ExcelWriter('newTest.xlsx') #建立名稱為newTest的excel表格
new_data.to_excel(writer,'sheet_1',float_format='%.5f') #float_format 控制精度,將new_data寫到newTest表格的第一頁中
writer.save()
print(new_data)
開啟新的excel:
參考:
https://blog.csdn.net/kazhaxi/article/details/103238725
https://blog.csdn.net/qq_41938858/article/details/87867237
https://blog.csdn.net/qq_34392457/article/details/89093852