Python从多个表格中随机抽取数据加以处理后合并全部数据

news/2024/7/21 6:36:47 标签: Python, Excel, 数据处理, 数据抽样, 随机抽取

  本文介绍基于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列数据也已经被剔除了。

  至此,大功告成。

欢迎关注:疯狂学习GIS


http://www.niftyadmin.cn/n/352054.html

相关文章

Linkage Mapper 之 Barrier Mapper 功能解析(含实际案例分析)

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 大草原松鸡"(Greater Sage Grouse)的Lek Kernals(即HCAs),以及连接、连接障碍和恢复机会效果图: 图片

想要顺利通过面试,这些问题你解决没有?

面试就像一次 X 光透视,对考生的内在素质进行全面检查。想要顺利通过面试,有些必须要解决的问题你解决了吗?今天小编带大家来看看面试前你需要解决的问题有哪些?从如信银行考试中心了解到的整理如下: 一、说话紧张 大脑…

SRP Batcher在真机上失效

1)SRP Batcher在真机上失效 ​2)Shader里面对同一张纹理多次采样会影响效率吗 3)为什么纹理开启了mipmap后,纹理内存反而下降了 4)TMP为什么有多次Delegate.Combine()的GC 这是第336篇UWA技术知识分享的推送&#xff0…

ZooKeeper(一):基础介绍

文章目录 什么是 ZooKeeper?ZooKeeper 发展历史ZooKeeper 应用场景ZooKeeper 服务的使用ZooKeeper 数据模型data tree 接口znode 分类 总结 什么是 ZooKeeper? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协同服务。ZooKeeper 的设计…

一些好用的软件推荐给你

软件一:nTrun nTrun 是一款非常实用的快速启动工具,它可以帮助用户快速启动各种常用的应用程序、网站和文件。此外,nTrun 还具有以下强大的功能: 自定义快捷键:用户可以根据自己的需求为每个应用程序、网站或文件设置…

revit窗族的平面出图设置,revit快速创建幕墙

一、revit窗族的平面出图设置 在平面视图中,为了满足出图的需要,我们经常要修改在不同的详细程度的可见性设置。 例如我们的窗在没有进行设置时在粗略/中等/精细的详细程度中都可以看到清晰的窗体构件。那么要使窗在精细程度中才可以看见详细的窗体结构&…

新手爬虫如何入门

新手爬虫入门指的是初学者学习如何使用Python编写爬虫程序,获取互联网上的数据。本文将介绍新手爬虫入门的基础知识、常用工具和技巧,帮助读者快速入门。 一、基础知识 1.1 HTTP协议 HTTP协议是互联网上应用最广泛的协议之一,它是Web数据传…

Java中List和Array转换

文章目录 List -> Array1. 调用toArray()方法直接返回一个Object[]数组&#xff1a;2. 给toArray(T[])传入一个类型相同的Array&#xff0c;List内部自动把元素复制到传入的Array中&#xff1a;3. 通过List接口定义的T[] toArray(IntFunction<T[]> generator)方法&…