m0_67182379 2023-03-07 18:50 采纳率: 54.5%
浏览 101
已结题

python数据处理

有一批excel表格,里面有很多列数据,第一行是列名。希望用python写代码,对每一列数据进行排序,降序。然后对每一列进行数据筛选,从每列数据最小值开始,去掉总数据的25%,保留最大值那部分75%,最终输出一个新表格,表格里的数据是排序(降序)好的,去掉下最小的25%的数值,列名与原名数据表格表头一致。去除数据的比例的参数可以让我自行

img


调整。

  • 写回答

3条回答 默认 最新

  • 「已注销」 2023-03-07 19:13
    关注

    参考GPT和自己的思路,你可以使用pandas和numpy库来完成这个任务。以下是一个可能的解决方案:

    import os
    import pandas as pd
    
    # 指定文件夹路径
    folder_path = '/path/to/folder/'
    
    # 获取文件夹中所有Excel文件
    excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
    
    # 定义去除数据比例
    data_percentage = 0.25
    
    # 循环处理每个Excel文件
    for file_name in excel_files:
        # 读取Excel文件
        df = pd.read_excel(os.path.join(folder_path, file_name))
        
        # 对每一列进行排序
        sorted_df = df.apply(lambda x: x.sort_values(ascending=False).values)
        
        # 去除每一列的最小25%数据
        filtered_df = sorted_df.apply(lambda x: x[int(len(x)*data_percentage):])
        
        # 将处理后的数据保存到新的Excel文件中
        new_file_name = 'sorted_filtered_' + file_name
        filtered_df.to_excel(os.path.join(folder_path, new_file_name), index=False)
    

    首先使用pandas的read_excel函数读取原始表格数据,然后使用apply函数对每一列数据进行排序(使用numpy的sort函数实现),并将结果保存在df_sorted中。

    接下来,使用apply函数和numpy的min和max函数分别计算每列数据的最小值和最大值,然后使用一个自定义的lambda函数,对每列数据进行筛选,去掉最小的25%的数据,将结果保存在df_filtered中。

    最后,使用DataFrame函数构建一个新的表格,并将df_filtered的数据倒置后,赋值给新表格的各列,最后使用pandas的to_excel函数将新表格输出到一个excel文件中。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月7日

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况