通过groupby pandas

时间:2016-09-17 05:38:08

标签: python pandas lambda

我有一个包含多个列的数据框(raw_data):

raw_data = {'one': ['A', 'B', 'A', 'C', 'B', 'B', 'A', 'C', 'A', 'B', 'C', 'B'],'two' : [3,4,5,6,2,7,9,12,1,10,11,8],'three': ['bcd','qpv', 'cba','klm','zfv','klm','abc','abc','abc','lmf','fly','zdb'],'four':['cba','klm','tcf','fly','zfb','zdb','pcd','tlm','bcd','klm','mvt','jbm'], 'five':['apple','lemon','banana','water','kiwi','lemon','orange','apple','apple','straw','water','pom']}

df = pd.DataFrame(raw_data, columns = ['one', 'two', 'three','four','five'])

从这个df,我可以生成新的列或直接向第3列和第3列移位5。

输出:

1)Groupby' one'

2)按两个'排序

3)转移'三' 1级,新栏' three_new'

4)转移'五' 1级,新栏目' five_new'

5)比较四个'与' three_new' &安培; '五'使用' five_new',如果两者都匹配 删除第一行&继续

6)groupby的比较

输出如下:

one two three   four    five
A   3   bcd     cba     apple
A   5   cba     tcf     banana
A   9   abc     pcd     orange
B   2   zfv     zfb     kiwi
B   7   klm     zdb     lemon
B   8   zdb     jbm     pom
B   10  lmf     klm     straw
C   11  fly     mvt     water
C   12  abc     tlm     apple

初始df有12行&输出df有9行,按上述标准过滤。请帮忙。

由于

0 个答案:

没有答案