python - 为 Pandas 数据框创建新列的条件要求

标签 python python-3.x pandas

我有一个如下所示的数据框:

Name   IDNum      BossNum
John   1          0
Matt   2          1
Mike   3          2
Jack   4          1

如何创建一个名为 BossName 的附加列,如下所示:

预期输出:

Name   IDNum      BossNum     BossName
John   1          0           John/none (I don't care about boss being ided)
Matt   2          1           John
Mike   3          2           Matt
Jack   4          1           John

我目前已经尝试过:

df['BossName'] = df['Name'][df['BossNum'] in df['IDNum']]

这根本不起作用。关于我如何实现这一点的任何想法都会很棒。

最佳答案

您可以创建一个系列Name,索引为IDNum,然后使用map:

df['BossName'] = df.BossNum.map(df.set_index('IDNum').Name)
df

enter image description here

关于python - 为 Pandas 数据框创建新列的条件要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699618/

相关文章:

python - 用cv2.HoughCircles检测外圆有困难

减少字典中 "duplicate"元组的 Pythonic 方法

python - 使用 BeautifulSoup 获取在其值之前有另一个标签的标签的值

python - wxPython gridbagsizer 颜色

python - 按组从 Pandas Dataframe 中删除 `NaN`

python - 将数组数据与子数组数据匹配

python - 灵活的 'em' 样式字体与 wxPython

python - 有没有办法缩短这个 if 语句?

python - 在BuildBot构建步骤中调用Python方法

python-3.x - 将 dict 标量转换为 Pandas DataFrame