多次复制Excel符合要求的数据行:Python批量实现

锦通  金牌会员 | 2024-5-16 15:38:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 902|帖子 902|积分 2706

  本文介绍基于Python语言,读取Excel表格文件数据,并基于此中某一列数据的值,将这一数据处于指定范围那一行加以复制,并将所得结果保存为新的Excel表格文件的方法。
  首先,我们来明确一下本文的具体需求。现有一个Excel表格文件,在本文中我们就以.csv格式的文件为例;此中,如下图所示,这一文件中有一列(也就是inf_dif这一列)数据比力关键,我们希望对这一列数据加以处置惩罚——对于每一行,如果这一行的这一列数据的值在指定的范围内,那么就将这一行复制一下(相当于新生成一个和当前行一摸一样数据的新行)。

  知道了需求,我们就可以开始代码的书写。此中,本文用到的具体代码如下所示。
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Jul  6 22:04:48 2023
  4. @author: fkxxgis
  5. """
  6. import pandas as pd
  7. df = pd.read_csv(r"E:\Train_Model.csv")
  8. result_df = pd.DataFrame()
  9. for index, row in df.iterrows():
  10.     value = row["inf_dif"]
  11.     if value <= -0.1 or value >= 0.1:
  12.         for i in range(10):
  13.             result_df = result_df.append(row, ignore_index=True)
  14.     result_df = result_df.append(row, ignore_index=True)
  15. result_df.to_csv(r"E:\Train_Model_Oversampling_NIR_10.csv", index=False)
复制代码
  此中,上述代码的具体介绍如下。
  首先,我们必要导入所需的库;接下来,我们使用pd.read_csv()函数,读取我们必要加以处置惩罚的文件,并随后将此中的数据存储在名为df的DataFrame格式变量中。接下来,我们再创建一个空的DataFrame,名为result_df,用于存储处置惩罚后的数据。
  随后,我们使用df.iterrows()遍历原始数据的每一行,此中index表示行索引,row则是这一行具体的数据。接下来,获取每一行中inf_dif列的值,存储在变量value中。
  此时,我们即可基于我们的现实需求,对变量value的数值加以判断;在我这里,如果value的值小于等于-0.1或大于等于0.1,则就开始对这一行加以复制;因为我这里必要复制的次数比力多,因此就使用range(10)循环,将当前行数据复制10次;复制的具体方法是,使用result_df.append()函数,将复制的行添加到result_df中。
  最后,还必要留意使用result_df.append()函数,将原始行数据添加到result_df中(这样相当于对于我们必要的行,其自身再加上我们刚刚复制的那10次,一共有11行了)。
  在最后一个步骤,我们使用result_df.to_csv()函数,将处置惩罚之后的结果数据保存为一个新的Excel表格文件文件,并设置index=False,表示不保存行索引。
  运行上述代码,我们即可得到结果文件。如下图所示,可以看到结果文件中,符合我们要求的行,已经复制了10次,也就是一共出现了11次。

  至此,大功告成。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表