【对比python】保持原序下的相邻记录分组 | 润乾 -欧洲杯在线开户

任务:列出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()) 列出夺冠次数最多的球队夺冠信息

集算器的集合是有序的,可以很方便的把相邻相同记录的归并在一组,不同的另起一组。

网站地图