1. 程式人生 > 其它 >從excel中讀取資料,儲存到對應檔案,並進行視覺化

從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