Python實(shí)現(xiàn)從多表格中隨機(jī)抽取數(shù)據(jù)
本文介紹基于Python語(yǔ)言,針對(duì)一個(gè)文件夾下大量的Excel表格文件,基于其中每一個(gè)文件,隨機(jī)從其中選取一部分?jǐn)?shù)據(jù),并將全部文件中隨機(jī)獲取的數(shù)據(jù)合并為一個(gè)新的Excel表格文件的方法。
首先,我們來(lái)明確一下本文的具體需求?,F(xiàn)有一個(gè)文件夾,其中有大量的Excel表格文件(在本文中我們就以.csv格式的文件為例);如下圖所示。
其中,每一個(gè)Excel表格文件都有著如下圖所示的數(shù)據(jù)格式;其中的第1
行表示每一列的名稱,第1
列則表示時(shí)間。
我們希望實(shí)現(xiàn)的,就是從每一個(gè)Excel表格文件中,隨機(jī)選取10行數(shù)據(jù)(第1行數(shù)據(jù)肯定不能被選進(jìn)去,因?yàn)槠錇榱忻?;?列數(shù)據(jù)也不希望被選進(jìn)去,因?yàn)檫@個(gè)是表示時(shí)間的數(shù)據(jù),我們后期不需要),并將這一文件夾中全部的Excel表格文件中每一個(gè)隨機(jī)選出的10行數(shù)據(jù)合并到一起,作為一個(gè)新的Excel表格文件。
明白了需求,我們即可開(kāi)始代碼的撰寫;本文用到的具體代碼如下所示。
# -*- coding: utf-8 -*- """ Created on Fri May 19 01:47:06 2023 @author: fkxxgis """ import os import pandas as pd original_path = "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/19_2022Data" result_path = "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/20_Train_Model" result_df = pd.DataFrame() for file in os.listdir(original_path): if file.endswith(".csv"): df = pd.read_csv(os.path.join(original_path, file)) sample_df = df.sample(n = 10, axis = 0) sample_df = sample_df.iloc[ : , 1 : ] result_df = pd.concat([result_df, sample_df]) result_df.to_csv(os.path.join(result_path, "Train_Model_1.csv"), index = False)
代碼中首先定義了原始數(shù)據(jù)文件夾(也就是有大量Excel表格文件的文件夾)路徑和結(jié)果數(shù)據(jù)文件夾路徑。然后,創(chuàng)建了一個(gè)空的DataFrame,用于存儲(chǔ)抽樣后的數(shù)據(jù)。
接下來(lái)是一個(gè)for循環(huán),遍歷了原始數(shù)據(jù)文件夾中的所有.csv文件,如果文件名以.csv結(jié)尾,則讀取該文件。然后,使用Pandas中的sample()函數(shù)隨機(jī)抽取了該文件中的10行數(shù)據(jù),并使用iloc[]函數(shù)刪除了10行數(shù)據(jù)中的第1列(為了防止第1列表示時(shí)間的列被選中,因此需要?jiǎng)h除)。最后,使用Pandas中的concat()函數(shù)將抽樣后的數(shù)據(jù)添加到結(jié)果DataFrame中。
最后,使用Pandas中的to_csv()函數(shù)將結(jié)果DataFrame保存到結(jié)果數(shù)據(jù)文件夾中,文件名為Train_Model_1.csv,并設(shè)置index = False表示不保存索引。
運(yùn)行上述代碼,我們即可獲得數(shù)據(jù)合并后的文件,且第1列數(shù)據(jù)也已經(jīng)被剔除了。
到此這篇關(guān)于Python實(shí)現(xiàn)從多表格中隨機(jī)抽取數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python隨機(jī)抽取數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)壓縮文件夾與解壓縮zip文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)壓縮文件夾與解壓縮zip文件的方法,涉及Python使用zipfile模塊進(jìn)行zip文件壓縮與解壓縮相關(guān)操作技巧,需要的朋友可以參考下2018-09-09Python+selenium破解拼圖驗(yàn)證碼的腳本
很多網(wǎng)站在登錄或者注冊(cè)時(shí)都會(huì)遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過(guò)重新組合成的一張整體。本文將和大家分享一個(gè)基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下2022-02-02Python中的各個(gè)多線程模塊之間的區(qū)別解析
Python中涉及多線程的主要模塊包括threading、thread和concurrent.futures,現(xiàn)代Python編程推薦使用threading和concurrent.futures,以提供更高層次的抽象和可用性,感興趣的朋友跟隨小編一起看看吧2024-09-09Python循環(huán)實(shí)現(xiàn)n的全排列功能
這篇文章主要介紹了Python循環(huán)實(shí)現(xiàn)n的全排列功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09python3實(shí)現(xiàn)跳一跳點(diǎn)擊跳躍
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)跳一跳點(diǎn)擊跳躍,玩跳一跳小游戲的思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn))
今天小編就為大家分享一篇Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06