Pandas合并在数据帧的子组中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas合并在数据帧的子组中相关的知识,希望对你有一定的参考价值。

考虑数据帧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实现这一目标?

答案

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

groupby

以上是关于Pandas合并在数据帧的子组中的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandas 合并和附加多个 CSV/数据帧的最快方法

pandas:更新和合并数据帧的更好方法

合并最近的追溯时间戳并在 pandas 中填充

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

sql 封装子组中的子查询数据

访问报告中的子组总和