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 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同