假设我有一个 Dataframe ,其中包含员工ID、他们的雇用日期、合同类型(可以是员工或承包商)以及他们雇用的公司,每个员工可以有相同或不同公司以及相同或不同合同类型的多个行。
ID Hire Date Contract Type Company
10000 2000.01.01 Employee Abc
10000 2001.01.01 Contractor Zxc
10000 2000.01.01 Employee Abc
10000 2000.01.01 Contractor Abc
10000 2002.01.01 Employee Cde
10000 2002.01.01 Employee Abc
10001 1999.03.11 Employee Zxc
10002 1989.01.01 Employee Abc
10002 1989.01.01 Contractor Cde
10002 1988.01.01 Contractor Zxc
10002 1999.01.01 Employee Abc
根据每个ID和他们拥有的每个合同类型,我需要确定最早的雇用日期,并将其指定为他们雇用的每个唯一公司的主要分配(如果该ID有2行具有相同的合同类型和相同的雇用日期,则只需将其显示的第一个值设置为“是”),这样就会产生以下 Dataframe :
ID Hire Date Contract Type Company Primary Assignment
10000 2000.01.01 Employee Abc Yes
10000 2001.01.01 Contractor Zxc Yes
10000 2000.01.01 Employee Abc No
10000 2000.01.01 Contractor Abc Yes
10000 2002.01.01 Employee Cde Yes
10000 2002.01.01 Employee Abc No
10001 1999.03.11 Employee Zxc Yes
10002 1989.01.01 Employee Abc Yes
10002 1989.01.01 Contractor Cde Yes
10002 1988.01.01 Contractor Zxc Yes
10002 1999.01.01 Employee Abc No
实现这一目标的最佳途径是什么?
1条答案
按热度按时间7cwmlq891#
您可以使用
groupby.idxmin
:或者,如果您希望灵活地选择要保留的值,可以使用
groupby.transform
和遮罩:输出: