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