pandas groupby成列表、分层索引MultiIndex;python sort、sorted技巧篇

参考:https://www.it1352.com/1722954.html

df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})

df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')

pandas groupby成列表、分层索引MultiIndex;python sort、sorted技巧篇_第1张图片

分层索引MultiIndex

参考:https://zhuanlan.zhihu.com/p/88393951
分层索引检索传入()元祖是筛选多层索引,传入[]筛选同一级下索引

df = pd.DataFrame({'class':['A','A','A','B','B','B','C','C'],
                   'id':['a','b','c','a','b','c','a','b'],
                   'value':[1,2,3,4,5,6,7,8]})
                  
  # 创建分层索引
df = df.set_index(['class','id'])
#分层索引检索
df.loc[('A',slice(None)),:]  ##同时筛选class id列的索引

df.loc[['A',"B"],:]  ## 只筛选class下的索引

pandas groupby成列表、分层索引MultiIndex;python sort、sorted技巧篇_第2张图片
pandas groupby成列表、分层索引MultiIndex;python sort、sorted技巧篇_第3张图片

groupby分组后组内排序

groupby([“vendor”,“channel”]).head(10)

datas_all.groupby(["vendor","channel","aid"]).count().reset_index().sort_values("n_dnum",ascending=False).groupby(["vendor","channel"]).head(10)

python sort\sorted参照排序

sorted()方法。它返回一个新的list;sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效

**反序

count_list = sorted(count_list, reverse=True)
sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

另一个不同就是list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。

sorted({1: ‘D’, 2: ‘B’, 3: ‘B’, 4: ‘E’, 5: ‘A’})
[1, 2, 3, 4, 5]

x的排序,x.sort(key=y.index),x排序安装y的索引index对应排序

x.sort(key=y.index)
按照列表x中的元素,在列表y中的index排序。
比如
y=["C","B","A"]
x=["B","C","A"]
那么x.sort(),x排序后是["A","B","C"]
x.sort(key=y.index)排序后则是["C","B","A"],x列表中的元素在y列表的索引index,分别是:1,0,2,x就是参照1,0,2的大小来排序。

你可能感兴趣的:(知识点,音视频,python,开发语言)