说我有以下数据帧:
>>> df=pd.DataFrame(data=['A','B','C','D','E'], columns=['Name'])
>>> df
Name
0 A
1 B
2 C
3 D
4 E
>>>
Run Code Online (Sandbox Code Playgroud)
我想为数据框中的相邻行创建值列表.如果我创建对的索引,我可以通过使用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]
Run Code Online (Sandbox Code Playgroud)
这样做最有效的方法是什么?
你可以一次性通过"adjacency"分组(不改变DataFrame):
In [11]: g = df.groupby(df.index // 2)
Run Code Online (Sandbox Code Playgroud)
然后做你需要做的事情:
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
Run Code Online (Sandbox Code Playgroud)