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日

悬赏问题

  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来