【对比python】保持原序下的相邻记录分组 | 润乾 -pg游戏官网登录入口
任务:列出nba连续夺冠次数最多的球队夺冠信息
python
1 | import pandas as pd |
2 | import numpy as np |
3 | pd.set_option('display.max_columns', none) |
4 | nba_file = 'e:\\txt\\nba.txt' |
5 | nba_champion = pd.read_csv(nba_file,sep='\t') |
6 | nba_champion = nba_champion.sort_values(by = 'year') |
7 | arr = np.zeros(len(nba_champion)) |
8 | arr[nba_champion['champion']!=nba_champion['champion'].shift(1)]=1 |
9 | arr = np.cumsum(arr) |
10 | nba_champion['flag']=arr |
11 | nba_champion_g = nba_champion.groupby(by='flag') |
12 | max_num = nba_champion_g.size().idxmax() |
13 | max_champion = nba_champion_g.get_group(max_num) |
14 | print(max_champion) |
python没有相邻条件分组的功能,需要创造一列分组标志。
集算器
a | ||
1 | =connect("mysql") | 连接数据库 |
2 | =a1.query("select * from nba order by year") | 按照年份排序 |
3 | =a2.group@o(champion) | 相邻不同,另起分组 |
4 | =a3.maxp(~.len()) | 列出夺冠次数最多的球队夺冠信息 |
集算器的集合是有序的,可以很方便的把相邻相同记录的归并在一组,不同的另起一组。