是否可以根据前一行过滤Python中的输出

是否可以根据前一行过滤Python中的输出,python,pandas,Python,Pandas,我正在开发一个学生项目,我的任务是分析来自一个数据帧的数据。我已经对它进行了筛选、准备等,现在我必须对它进行分析,但我有这么多行,很难手动完成。我必须找到具有一种模式的行:所有数据都相同,但有一列不同。所以,我有: 名称 工作 薪水 国家 亚当 司机 1300 美国 亚当 司机 1300 中国 刻痕 司机 1320 美国 刻痕 司机 1320 美国 乔尔 老师 1900 巴西 刻痕 领航员 2300 加拿大 刻痕 领航员 2300 俄罗斯 正如我从您的代码示例中看到的,您希望找到没有any 3列

我正在开发一个学生项目,我的任务是分析来自一个数据帧的数据。我已经对它进行了筛选、准备等,现在我必须对它进行分析,但我有这么多行,很难手动完成。我必须找到具有一种模式的行:所有数据都相同,但有一列不同。所以,我有:

名称 工作 薪水 国家 亚当 司机 1300 美国 亚当 司机 1300 中国 刻痕 司机 1320 美国 刻痕 司机 1320 美国 乔尔 老师 1900 巴西 刻痕 领航员 2300 加拿大 刻痕 领航员 2300 俄罗斯
正如我从您的代码示例中看到的,您希望找到没有any 3列具有相同的值,但前3列具有 相同的值(第四列中的值不同)

单向:生成df1后,删除成对的重复行:

df2 = df1[~df1.duplicated(keep=False)]
另一个可能更简单的解决方案是从原始df开始, 按['Name'、'Job'、'Salary']对其进行分组,并只留下具有 不止一个独特的国家:


一列是不同的。
您指的是
国家列,对吗?您不想将同一工作分配给多个姓名?
df1 = df.groupby(['Name','Job', 'Salary']).filter(
    lambda grp: grp.Country.unique().size > 1)