说我有以下数据框:
>>> 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]
最有效的方法是什么?
答案 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