Pandas合并在数据帧的子组中

问题描述 投票:0回答:1

考虑数据帧df

   SCHOOL  ID  SET  NAME
0  Foo     1   0    Ben
1  Foo     2   0    Ben
2  Foo     3   1    Chris
3  Foo     4   1    Joe
4  Foo     5   0    Tom
5  Bar     1   0    Harry
6  Bar     2   1    Jeff
7  Bar     3   0    George
8  Bar     4   1    Tom

我想创建新的数据帧

   SCHOOL  ID  SET  NAME    PREV_NAME
0  Foo     1   0    Ben     None
1  Foo     2   0    Ben     Ben
2  Foo     3   1    Chris   None
3  Foo     4   1    Joe     Chris
4  Foo     5   0    Tom     Ben
5  Bar     1   0    Harry   None
6  Bar     2   1    Jeff    None
7  Bar     3   0    George  Harry
8  Bar     4   1    Tom     Jeff

其中PREV_NAME是以前的NAME(按ID排序)在相同的SCHOOLSET作为给定的记录。


如果没有SET条件,那么我可以做类似的事情

df_copy = df.copy()
df_copy['ID'] = df_copy['ID'] + 1
df.merge(df_copy, on=['SCHOOL', 'ID'], how='left')

由于存在SET条件,我们需要一种方法来对每个唯一的(SCHOOL, SET)对进行分组,然后将上述合并(注意我们不能再使用ID)与新索引一起应用。

我如何使用Pandas实现这一目标?

python pandas dataframe group-by pandas-groupby
1个回答
1
投票

好像你想要qazxsw poi + qazxsw poi on qazxsw poi -

groupby
© www.soinside.com 2019 - 2024. All rights reserved.