首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据另一行的varchar删除重复项。从在职名册中删除被解雇的工作人员

根据另一行的varchar删除重复项。从在职名册中删除被解雇的工作人员
EN

Stack Overflow用户
提问于 2022-10-06 19:20:54
回答 1查看 9关注 0票数 -1

我想创建一个只显示在职工作人员的名册。所有工作人员都列在一个表中,没有终止合同的在职工作人员在表中有一行。被解雇的工作人员有两行数据。雇员身份是指工资或期限。我怎样才能得到一排只工作的员工?每个工作人员都有一个独特的ID。

EN

回答 1

Stack Overflow用户

发布于 2022-10-06 19:48:48

您使用的是什么编程语言?

我假设你在使用Python,使用熊猫来处理数据。此外,只要有可能,共享示例数据将使其他用户能够更有效地帮助您。

,如果可能的话,请编辑你的问题,在你的问题中添加更多的上下文,以便其他人能更有效地帮助你!

我已经开发了下面的代码,试图根据从您的问题中推断出的数据来重新创建您的问题。

代码语言:javascript
复制
# == Necessary Imports ===============================================
import pandas as pd

# == Generate sample dataframe =======================================
# For our sample, employees 3, 7, and 9 will represent the terminated
# employees.
df = pd.DataFrame(
    {
        "memberID": [1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 9],
        "status": [
            "wages",
            "wages",
            "wages",  # <-- Employee 3 terminated
            "term",   # <-- Employee 3 terminated
            "wages",
            "wages",
            "wages",
            "wages",  # <-- Employee 7 terminated
            "term",   # <-- Employee 7 terminated
            "wages",
            "wages",  # <-- Employee 9 terminated
            "term",   # <-- Employee 9 terminated
        ],
    }
)

# == Solution ==============================================================
df.loc[
    df["memberID"].isin(
        df["memberID"]
        .value_counts()
        .to_frame("count")
        .loc[lambda xdf: xdf["count"] < 2, :]
        .index
    ),
    :,
]
# Returns:
#
#    memberID status
# 0         1  wages
# 1         2  wages
# 4         4  wages
# 5         5  wages
# 6         6  wages
# 9         8  wages

备注

基本上,我的方法是使用pandas.Series.value_counts来查找每个"memberID"在dataframe上出现的次数。然后,我将一个.loc调用链接起来,以过滤在dataframe上出现少于2次的员工,并在原始df上筛选那些"memberID"

总之,该解决方案使用了熊猫的三种方法:

  1. pandas.Series.value_counts:统计熊猫系列的每个值得到的次数,将熊猫系列转换为DataFrame (用于链接多个操作,together).
  2. pandas.DataFrame.loc:用于过滤数据中只出现一次的员工)。然后再使用第二次过滤原始的df,只考虑那些没有被解雇的员工。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73979043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档