python - pandas 中的数据操作 - python

标签 python pandas data-manipulation

我知道这可能是一个非常简单的问题,但是我是 python 新手,我不确定如何很好地操作 pandas 数据帧。

让我们举个例子数据:

   Job                Skill                   RelationType
 Director            Manage staff                essential
 Director            Manage  staff               optional

目标

让我们举个例子数据:

   Job                Skill                   RelationType
Director            Manage staff                essential
Director            Manage  staff               essential

理想情况下,我想编写一个函数,当 RelationType 不同但 Skill 相同时,在这种情况下,它会被覆盖并替换为必需的。因此,对于同一份工作,基本技能总是比可选技能更重要。

已解决

df['RelationType'] = df.groupby(['Jobs', 'Skill'])['RelationType'].transform('min')

最佳答案

Categorical Data对于这项任务很有用。首先将 RelationType 转换为分类系列,首先按优先级更高的值排序。

然后按关键字段执行 GroupBy 操作,使用 min 函数选择最高优先级的类别。

df['RelationType'] = pd.Categorical(df['RelationType'], ordered=True,
                                    categories=['essential', 'optional'])

df['RelationType'] = df.groupby(['Job', 'Skill']).transform('min')

print(df)

        Job        Skill RelationType
0  Director  ManageStaff    essential
1  Director  ManageStaff    essential

关于python - pandas 中的数据操作 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51778590/

相关文章:

python - 检查 Linux 发行版名称

python - 将 Pandas 中的excel文件中的逗号转换为点

pandas - 有没有办法为 pandas 数据框中下面的行生成总和?

r - 使用列表 : Drop variables, 中的数据帧添加新的

r - 添加零值条目,以便所有组都具有相同项目的条目

python - 如何将 Django 模型表限制为一行

python - 如何用 NaN 计算每行的最佳拟合线?

python - 在 Scikit-learn 分类器中找到最常见的术语

python - 在 Python 中计算 CSV 中的每月总值

r - 根据列中的唯一值查找两个最大日期之间的最小日期