4 跨列分组
4.1 apply 的引入
4.2 apply 的使用
在设计上,apply 的自定义函数传入参数与 filter 完全一致 , 只不过后者只允许返回布尔值
【a】标量情况:结果得到的是 Series,索引与 agg 的结果一致
【b】Series 情况:得到的是 DataFrame , 行索引与标量情况一致 , 列索引为 Series 的索引
【c】DataFrame 情况:得到的是 DataFrame,行索引最内层在每个组原先 agg 的结果索引上,再加一层返 回的 DataFrame 行索引,同时分组结果 DataFrame 的列索引和返回的 DataFrame 列索引一致
Python气象数据处理进阶之Xarray(5):数据整合(分组,合并...)这部分同pandas的gorupby函数基本相同,实现对数据的分组归类等等 。
split·将数据分为多个独立的组 。
apply·对各个组进行操作 。
combine·将各个组合并为一个数据对象 。
创建一个dataset
我对的例子加以修改以便更好的理解 。
解释下数据结构,创建了一个二维数据u(lat, lon),坐标数据为latitude 和country,强调一下这里创建的是dataset,而不是dataArray,分不清的可以再看看本系列的第一篇文章 。坐标数据不等于u的坐标 。创建coords部分都指明了latitude 和 country 都是针对lat的扩展 。
我们可以这样理解,对于纬度的分类 , 我们可以按纬度的大小分,也就是"latitude": [10, 20, 30, 40] ; 我们也可以对纬度所在的国家分,"country": ("x", list("abba"),那比如我们想求某个国家的数据的平均时就十分方便 。
下边我们进行分组:
说明第0和第4个数是国家a的,第2和第3是国家b的 。
.groups换成.mean() 则就是对分组求平均,以此类推 。
必须添加一个list才可以将其分类结果打印出来 。直接打印DatasetGroupBy object是不能输出结果的 。
那么针对经纬度的坐标的分组怎么实现呢,比如说选出区间在多少到多少之间的?
.groupby_bins() 函数可以解决这一问题 。
还是这个数据,"latitude": [10, 20, 30, 40]
那我们想以25为界,分为两组,0-25 , 25-50
在进行了分组后 , 要对各个分组进行计算 。
我们先从dataset 中取出 u 这个dataarray
比如是实现前边提到的按国家进行数据平均,或者标准化
也可以通过map()函数使用一些自定义的函数,比如说标准化 ,
这个用法是官方提供的,但是我的Xarray版本过低,还不支持这种用法(Xarray会定期更新,以至于可能我介绍过的一些方法有了更简便的操作,大家可以在评论区留言) 。
强调一句 , Xarray官方的更新是比较快的,很可能我写在这里的函数官方又给出了更新的版本,但是我没办法做到时刻与官方最新同步,所以如果遇到问题 , 最好的解决办法还是去查阅官方文档的对应部分 。
【python数据分组函数 python 分组函数】关于python数据分组函数和python 分组函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 网络信息安全毕业设计题目推荐,网络信息安全毕业论文
- 鸿蒙系统4.0是最高的吗,鸿蒙系统的最低要求
- 像素养成对战类游戏,像素养成游戏推荐
- sqlserver数据库转化成mysql,如何把sqlserver中的数据变成mysql
- 匿名函数python 匿名函数python用处
- 惠而浦公司ERP系统分析,惠而浦公司在哪里
- 小米手机怎么搬家,oppo手机换小米手机怎么搬家
- vb.net按句柄截图 vb向句柄控件发点击
- 眉山小程序开发费用,外包小程序开发费用一览表