excel中提取資料轉成txt訓練的辦法

2021-06-28 14:04:31 字數 2621 閱讀 6300

而需要做成txt形式:一行顯示3周資料,其中2週是輸入,一周輸出,用來訓練資料,這樣一行就有504個資料。

在這裡需要做50組訓練資料,20組測試資料,顯然手動轉換是非常困難的,而且要從列轉行,非常費時,果斷先轉換成sql,然後用sql語句來實現。

1、歸一化**資料

如果不採用歸一化,那麼訓練速度回非常慢

這裡採用歸一化的常用公式:

x=(x-min)/(max-min)

在**中果斷採用公式來實現

步驟:在乙個單元中寫入   =min(a2:a8788)

這樣就能求出a2:a8788之間的最小值了,同理可以求出最大值,

接下來再新的一列中第乙個寫入  =(a2-30)/(430-30),30為最小值,430為最大值

然後往下拉動即可完成所有資料的歸一化轉化任務,轉化後的效果如下圖所示

2、先將excel中的資料匯入到sql中,方便用sql語句來操作

但是遇到問題,轉化的時候無法將所有行匯入,後來才發現解決方案,

匯入的時候,必須選擇下面那個,才可以,具體是什麼原因,待我後面檢視書籍再做解釋。

3、新建表

由於需要建立多列,從v1...v504,手動建立顯然太費時,果斷用sql語句

**如下:

use dad

--判斷表是否存在

if object_id('aatest') is not null

drop table aatest

declare @ss varchar(8000)

declare @i int

set @ss=''

set @i=1

--建立504列的表

while @i<505 

begin

--注意連線和轉換方式

if @i!=1

set @ss=@ss+','

set @ss=@ss+'v'+convert(varchar(100),@i)+ ' float' 

set @i=@i+1

endset @ss='create table aatest ('+@ss+')'

print @ss

exec(@ss)

結果如下:

4、訓練資料的形成

需要將表aadata中的資料,以特定的形式轉換到aatest中來。

一次取504個資料,每次迴圈向後推24個資料(即一天)

實現**如下:

use dad

declare @xh int

declare @value float

declare @s1 varchar(4000)--儲存字串1

declare @s2 varchar(4000)--儲存字串2

declare @ss varchar(8000)--連線@s1與@s2

declare @i int

declare @count int --記得宣告型別

set @count=1

while @count<24*70 --24*70 共70組資料,每次往後推一天

begin

set @i=0

set @s1='' --一定要記得初始化,否則執行@s1=@s1+..的時候出現錯誤

set @s2=''

set @ss=''

--宣告游標

declare cur cursor for --記住一定要接乙個查詢的語句,而且不能使exec形式的

select gyvalue from aadata where bianhao<=(@count+503) and bianhao>=@count

--開啟游標

open cur

--取得每行的值(fetch)

fetch next from cur into @value

while(@@fetch_status=0)

begin

set @i=@i+1

set @s1=@s1+'v'+convert(varchar(100),@i)

set @s2=@s2+convert(varchar(100),@value)

if @i<504

begin --有兩行以上的一定要用begin end,因為沒有括號

set @s1=@s1+','

set @s2=@s2+','

endelse

break

fetch next from cur into @value

end--關閉游標

close cur

--釋放游標

deallocate cur

set @ss='insert into aatest('+@s1+')'+'values('+@s2+')'

--print @ss

exec(@ss)

set @count=@count+24

end

結果如下:

接下來將其匯出為txt的形式

在這裡,我將前70行作為測試資料,後20行作為測試資料,結果如下

但是結果顯示,txt無法一次顯示504列,excel最多只能有256列,所以需要在原程式中修改載入資料的辦法,看能否直接從資料庫中載入資料

excel中提取箱單中的箱數

if iserr search b3,1 1,right b3,search b3,1 1 left b3,search b3,1 1 1 如果b3單元格中沒有 則返回1,即為1箱 如果有 則拿 後面的數字減去 前面的數字,則為具體箱數。注意如果有 則 後面的數字必須比前面的大。如果不確定。則需要加...

Jmeter 從資料庫中提取資料

資料庫操作應用場景 1.做效能測試的時候,需要向資料庫中插入一些資料 2.做介面自動化的時候,有些介面返回的資料是動態變化,在斷言的時候就不能寫死 在這裡有時候需要我們檢查資料,返回資料與資料庫的資料進行校驗 3.比如,獲取手機驗證碼的介面 驗證碼其實是後台生成,會保持在資料庫中,需要從資料庫去提取...

讀取excel和txt資料

1.建立乙個file檔案物件 並獲取資料 file file new file 檔案絕對位置 包含檔名和檔案字尾 2.建立乙個excel物件 workbook wb workbook.getworkbook file 3.獲取excel每頁的資訊 乙個excel 中可以有很多頁,在excel下方切換...