在Pandas数据帧中对行对执行函数

时间:2015-11-21 00:54:55

标签: python pandas

说我有以下数据框:

>>> df=pd.DataFrame(data=['A','B','C','D','E'], columns=['Name'])
>>> df
  Name
0    A
1    B
2    C
3    D
4    E
>>> 

我想为数据框中的相邻行创建值列表。如果我创建对的索引,我可以通过使用groupby获得该结果:

>>> df.index=[0,0,1,1,2]
>>> df.groupby(level=0).agg(lambda x: list(x))
     Name
0  [A, B]
1  [C, D]
2     [E]

最有效的方法是什么?

1 个答案:

答案 0 :(得分:6)

你可以通过" adjacency"一次性(不改变DataFrame):

In [11]: g = df.groupby(df.index // 2)

然后做你需要做的事情:

In [12]: g.get_group(0)
Out[12]:
  Name
0    A
1    B

In [13]: g.sum()
Out[13]:
  Name
0   AB
1   CD
2    E