Python对Excel不同的行分别复制不同的次数

 更新时间:2023年07月18日 11:26:10   作者:疯狂学习GIS  
这篇文章主要介绍了如何利用Python实现读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,感兴趣的小伙伴可以学习一下

本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求那一行加以复制指定的次数,而不符合要求那一行则不复制;并将所得结果保存为新的Excel表格文件的方法。

这里需要说明,在我们之前的文章Python读取Excel文件并复制指定的数据行中,也介绍过实现类似需求的另一种Python代码,大家如果有需要可以查看上述文章;而上述文章中的代码,由于用到了DataFrame.append()这一个在最新版本pandas库中取消的方法,因此有的时候可能会出现报错的情况;且本文中的需求较之上述文章有进一步的提升,因此大家主要参考本文即可。

首先,我们来明确一下本文的具体需求。现有一个Excel表格文件,在本文中我们就以.csv格式的文件为例;其中,如下图所示,这一文件中有一列(也就是inf_dif这一列)数据比较关键,我们希望对这一列数据加以处理——对于每一行,如果这一行的这一列数据的值在指定的范围内,那么就将这一行复制指定的次数(复制的意思相当于就是,新生成一个和当前行一摸一样数据的新行);而对于符合我们要求的行,其具体要复制的次数也不是固定的,也要根据这一行的这一列数据的值来判断——比如如果这个数据在某一个值域内,那么这一行就复制10次;而如果在另一个值域内,这一行就复制50次等。

知道了需求,我们就可以开始代码的书写。其中,本文用到的具体代码如下所示。

# -*- coding: utf-8 -*-
"""
Created on Thu Jul  6 22:04:48 2023

@author: fkxxgis
"""

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

original_file_path = "E:/01_Reflectivity/99_Model/02_Extract_Data/26_Train_Model_New/Train_Model_0715.csv"
result_file_path = "E:/01_Reflectivity/99_Model/02_Extract_Data/26_Train_Model_New/Train_Model_0715_Over_NIR_0717_2.csv"

df = pd.read_csv(original_file_path)
duplicated_num_0 = 70
duplicated_num_1 = 35
duplicated_num_2 = 7
duplicated_num_3 = 2

num = [duplicated_num_0 if (value <= -0.12 or value >= 0.12) else duplicated_num_1 if (value <= -0.1 or value >= 0.1) \
else duplicated_num_2 if (value <= -0.07 or value >= 0.07) else duplicated_num_3 if (value <= -0.03 or value >= 0.03) \
else 1 for value in df.inf_dif]
duplicated_df = df.loc[np.repeat(df.index.values, num)]

plt.figure(0)
plt.hist(df["inf_dif"], bins = 50)
plt.figure(1)
plt.hist(duplicated_df["inf_dif"], bins = 50)

duplicated_df.to_csv(result_file_path, index=False)

其中,上述代码的具体含义如下。

首先,我们需要导入所需的库,包括numpypandasmatplotlib.pyplot等,用于后续的数据处理和绘图操作。接下来,即可开始读取原始数据,我们使用pd.read_csv()函数读取文件,并将其存储在一个DataFrame对象df中;这里的原始文件路径由original_file_path变量指定。

随后,我们开始设置重复次数。在这里,我们根据特定的条件,为每个值设定重复的次数。根据inf_dif列的值,将相应的重复次数存储在num列表中。根据不同的条件,使用条件表达式(if-else语句)分别设定了不同的重复次数。

接下来,我们使用loc函数和np.repeat()函数,将数据按照重复次数复制,并将结果存储在duplicated_df中。

最后,为了对比我们数据重复的效果,可以绘制直方图。在这里,我们使用matplotlib.pyplot库中的hist()函数绘制了两个直方图;其中,第一个直方图是原始数据集dfinf_dif列的直方图,第二个直方图是复制后的数据集duplicated_dfinf_dif列的直方图。通过指定bins参数,将数据分成50个区间。

完成上述操作后,我们即可保存数据。将复制后的数据集duplicated_df保存为.csv格式文件,路径由result_file_path变量指定。

执行上述代码,我们将获得如下所示的两个直方图;其中,第一个直方图是原始数据集dfinf_dif列的直方图,也就是还未进行数据复制的直方图。

其次,第二个直方图是复制后的数据集duplicated_dfinf_dif列的直方图。

可以看到,经过前述代码的处理,我们原始的数据分布情况已经有了很明显的改变。

到此这篇关于Python对Excel不同的行分别复制不同的次数的文章就介绍到这了,更多相关Python Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现自定义Jupyter魔法命令

    Python实现自定义Jupyter魔法命令

    相信大家都用过 jupyter,也用过里面的魔法命令,这些魔法命令都以%或者%%开头。用法还是比较简单的,但是我们能不能自定义魔法命令呢?本文就来教大家如何自定义Jupyter魔法命令
    2022-08-08
  • 在Python中使用colorama库给输出添加颜色

    在Python中使用colorama库给输出添加颜色

    文章介绍了colorama库,这是一个用于Python的命令行彩色打印的简单库,它可以帮助用户轻松地实现彩色的打印效果,使输出结果更加清晰易读,文章还详细介绍了如何使用colorama库,包括基本用法、高级技巧、潜在问题和其他需要注意的点,需要的朋友可以参考下
    2026-04-04
  • python的一些加密方法及python 加密模块

    python的一些加密方法及python 加密模块

    这篇文章主要介绍了python的一些加密方法及python加密模块,本文通过实例文字相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • Python使用tablib生成excel文件的简单实现方法

    Python使用tablib生成excel文件的简单实现方法

    这篇文章主要介绍了Python使用tablib生成excel文件的方法,结合实例形式分析了tablib模块的相关使用技巧,需要的朋友可以参考下
    2016-03-03
  • 利用scikitlearn画ROC曲线实例

    利用scikitlearn画ROC曲线实例

    这篇文章主要介绍了利用scikitlearn画ROC曲线实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python import与from import使用和区别解读

    Python import与from import使用和区别解读

    Python程序可以调用一组基本的函数(即内建函数),比如print()、input()和len()等函数。接下来通过本文给大家介绍Python import与from import使用及区别介绍,感兴趣的朋友一起看看吧
    2021-09-09
  • python实现定时发送邮件到指定邮箱

    python实现定时发送邮件到指定邮箱

    这篇文章主要为大家详细介绍了python实现定时发送邮件到指定邮箱,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Python使用tkinter实现摇骰子小游戏功能的代码

    Python使用tkinter实现摇骰子小游戏功能的代码

    这篇文章主要介绍了Python使用tkinter实现的摇骰子小游戏功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python中横向或纵向拼接两个表方法实例

    Python中横向或纵向拼接两个表方法实例

    最近要将两个表格合并,Python处理起来很简单,所以这篇文章主要给大家介绍了关于Python中横向或纵向拼接两个表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Python中变量和数据类型的使用方法和避坑指南

    Python中变量和数据类型的使用方法和避坑指南

    这篇文章主要为大家详细介绍了Python中变量和数据类型的使用方法和避坑指南,主要包括5个基本数据类型和类型查看与转换,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-06-06

最新评论