bolv6666 2022-07-26 09:41 采纳率: 100%
浏览 127
已结题

python 表格数据分组

刚学python,遇到个这样的问题:把下面的表格数据进行分组,根据左边 历史风暴_编号,编号相同的分为一组。第1~8行分为一组,第9~15行分为一组,第16~22分为一组。利用pandas读取,Num为所有编号,Lon为所有经度,Lat为所有纬度。

df=pd.read_excel(filename,sheet_name='Sheet1')
Num = df['历史风暴_编号']
Lon = df['历史风暴_经度(°)']
Lat = df['历史风暴_纬度(°)']

img

我想要达到的结果:能根据编号的不同,分为Num1、Num2、Num3,相应的Lon也分为Lon1、Lon2、Lon3,Lat也分为Lat1、Lat2、Lat3
  • 写回答

5条回答 默认 最新

  • eq0284 2022-07-26 12:07
    关注

    你的需求应该是对数据做一定处理,接着根据num,获取经度纬度。如果是分组,那么一定涉及到统计(按编号分组后求经度纬度的最大值,最小值,平均值)
    你的需求显然不是获取min,max,count,mean这些的,因此只需要排序后做条件索引就可以了,不一定要分组。

    img

    我的代码:

    import pandas as pd
    if __name__ == '__main__':
        # 读取excel数据
        df = pd.read_excel('F:\position.xlsx')# 你的excel地址
        # 排序
        df2 = df.sort_values(by=['编号'], ascending=False)
        # 获取所有索引
        all_index = df.pivot_table(index=['编号']).index
        # 遍历每一编号
        for index in all_index:
            # 条件索引获取分组数据
            print('编号%s的数据为:' % index)
            print(df2[df2['编号']==index])
    
    

    运行结果:

    img

    您的采纳就是对我最大的动力,谢谢!!!

    img

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

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 创建了问题 7月26日

悬赏问题

  • ¥15 Matlab在app上输入带有矩阵形式的初始条件发生错误
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器