首页 > 解决方案 > Pandas - 连接被截断的行

问题描述

我在网上找到了一个数据库,其中包含一系列匿名用户的学位以及他们完成学位的逆序(最后一个学位在前)。对于每个用户,我有:

基本上我的数据框看起来像这样:

用户身份 序列 程度
123 1 民事硕士
123 1 工程
123 2 工程学士

如您所见,我的问题是有时学位标题被截断并分成两行(用户 123 拥有土木工程理学硕士学位 - 请注意顺序相同的值)。

理想情况下,我的数据框应如下所示:

用户身份 序列 程度
123 1 土木工程硕士
123 2 工程学士

我想知道是否有人可以帮助我。我很乐意提供更多可能需要帮助的见解。

提前致谢!

标签: pythonpandas

解决方案


尝试groupby aggregate

df.groupby(['User_ID', 'Sequence'], as_index=False).aggregate(' '.join)
   User_ID  Sequence                    Degree
0      123         1  MSc in Civil Engineering
1      123         2        BSc in Engineering

完整的工作示例:

import pandas as pd

df = pd.DataFrame({
    'User_ID': [123, 123, 123],
    'Sequence': [1, 1, 2],
    'Degree': ['MSc in Civil', 'Engineering', 'BSc in Engineering']
})
df = df.groupby(['User_ID', 'Sequence'], as_index=False).aggregate(' '.join)
print(df)

推荐阅读