如何根据列条件在熊猫中排?

时间:2019-09-26 23:37:46

标签: pandas

enter image description here我有一个pandas数据框,我想复制那些满足某些列条件(即CourseID列中有多个元素)的行

我尝试遍历数据框以标识应复制的行,但是我不知道如何复制它们,

Here is the link to the expected output

1 个答案:

答案 0 :(得分:0)

使用 Pandas 版本 0.25 很容易:

第一步是拆分 df.CourseID (将每个元素转换为列表) 然后爆炸(将每个列表分成多行, 在每行中重复其他列):

course = df.CourseID.str.split(',').explode()

结果是:

0    456
1    456
1    799
2    789
Name: CourseID, dtype: object

然后,所有要做的就是将 df course 加入,但是为了避免 重复列名称,则必须先删除原始的 CourseID 列。 幸运的是,in可以用一条指令表示:

df.drop(columns=['CourseID']).join(course)

如果您使用的是 Pandas 的旧版本,这是一个很好的理由 升级。