Python实现从多表格中随机抽取数据
作者:疯狂学习GIS 发布时间:2022-07-01 01:58:18
本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,随机从其中选取一部分数据,并将全部文件中随机获取的数据合并为一个新的Excel表格文件的方法。
首先,我们来明确一下本文的具体需求。现有一个文件夹,其中有大量的Excel表格文件(在本文中我们就以.csv格式的文件为例);如下图所示。
其中,每一个Excel表格文件都有着如下图所示的数据格式;其中的第1
行表示每一列的名称,第1
列则表示时间。
我们希望实现的,就是从每一个Excel表格文件中,随机选取10行数据(第1行数据肯定不能被选进去,因为其为列名;第1列数据也不希望被选进去,因为这个是表示时间的数据,我们后期不需要),并将这一文件夹中全部的Excel表格文件中每一个随机选出的10行数据合并到一起,作为一个新的Excel表格文件。
明白了需求,我们即可开始代码的撰写;本文用到的具体代码如下所示。
# -*- 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)
代码中首先定义了原始数据文件夹(也就是有大量Excel表格文件的文件夹)路径和结果数据文件夹路径。然后,创建了一个空的DataFrame,用于存储抽样后的数据。
接下来是一个for循环,遍历了原始数据文件夹中的所有.csv文件,如果文件名以.csv结尾,则读取该文件。然后,使用Pandas中的sample()函数随机抽取了该文件中的10行数据,并使用iloc[]函数删除了10行数据中的第1列(为了防止第1列表示时间的列被选中,因此需要删除)。最后,使用Pandas中的concat()函数将抽样后的数据添加到结果DataFrame中。
最后,使用Pandas中的to_csv()函数将结果DataFrame保存到结果数据文件夹中,文件名为Train_Model_1.csv,并设置index = False表示不保存索引。
运行上述代码,我们即可获得数据合并后的文件,且第1列数据也已经被剔除了。
来源:https://blog.csdn.net/zhebushibiaoshifu/article/details/130829011


猜你喜欢
- 最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的errorlog中出现磁盘请求超过15s才完成
- 散点图,顾名思义是一些散乱的点构成的图。那么这些散乱的点有什么作用呢?散点图通过用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是
- 代码如下:create table A_TEST ( PAYOUT_ITEM_CODE VARCHAR2(30) not null, FOR
- 描述replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
- PHP作为开源语言,发展至今已有很多成熟的国内外开源系统,足以满足个人和企业用户自己建立WEB站点,下面则主要介绍PHP建站的流程和步骤。不
- 如何在ADO中客户端利用好缓存技术?具体应用见下例:global.asa< !--METADATA TYPE=&q
- 使用pandas库来读取xlsx格式中的数据。excel中数据:示例代码1:import pandas as pd# data = pd.r
- 首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己?没想出答案把,恩,可以读下文了。从语义角度讲,同一事物的不同表述可以反映人的主观视
- 流行的 JavaScript 库有jQuery,MooTools,Prototype,Dojo和YUI等,这些 JavaScript 库功能
- SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结
- 上个项目中用到了ActiveMQ,只是简单应用,安装完成后直接是用就可以了。由于新项目中一些硬件的限制,需要把消息队列换成RabbitMQ。
- 本文是关于人物角色的一些简单介绍,感谢瑶芝同学提供的大力帮助! 人物角色(Personas)作为一种技术
- 引入在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对
- 怎么从mysql从官网下载到安装到客户端的登陆呢?这篇文章给你讲的清清楚楚。第一步:到Mysql官网下载。从[https://dev.mys
- 本文实例为大家分享了python实现人机五子棋的具体代码,供大家参考,具体内容如下图形界面引用PyQt5,还有socket通信。可以局域网对
- Java读取数据库表package com.easycrud.builder;import com.easycrud.utils.Prope
- 前言:无意间留意到一个面试题,需求是利用js将手机号中间四位变成*号,简单记录一下。1. 利用字符串的substr方法 substr() 方
- 自动等待及元素执行方法操作元素的一系列方法,只要调用了测试夹函数page,就能引出操作元素的方法:import pytestfrom pla
- 上下文管理器最常用的是确保正确关闭文件,with open('/path/to/file', 'r') as
- 【原文地址】New C# "Orcas" Language Features: Automatic Properties