如何在pandas中创建间隔列?

时间:2017-11-20 16:17:00

标签: python pandas

我有一个数据框,如:

name1       name2    mounth 
 A            B        01
 B            C        02
 A            B        02
 A            B        04
 B            C        03

我想创建一个列,显示每对名称的间隔:

name1        name2     interval 
 A            B        [1,2];[4,4]
 B            C        [2,3]

是否可以在pandas中创建上述列的间隔?

1 个答案:

答案 0 :(得分:3)

很难理解你为什么需要这个......

from itertools import chain

df.groupby(['name1','name2']).mounth.\
   apply(lambda x :x.groupby(x.diff().ne(1).cumsum()).\
     apply(lambda y: list(chain.from_iterable([y])) if len(y)>1 else 
         list(chain.from_iterable([y,y])))).\
            groupby(level=['name1','name2']).apply(list)
Out[1305]: 
name1  name2
A      B        [[1, 2], [4, 4]]
B      C                [[2, 3]]
Name: mounth, dtype: object