python - 一行PANDAS的多个结果
问题描述
我有一个包含姓名和部门的数据框。所有这些名称可以映射到 4 个不同的部门(部门 A、B、C 和 D)。例如,每个名称都必须映射到部门 A、B、C、D。在初始数据中,每个名称仅映射到一个部门。在最终数据集中,每个名称映射到四个不同的部门。我需要一种方法为每个名称插入 3 个额外的行,并为它们添加 3 个其他部门。
例子:
初始数据:
Name Department
Joe A
Ellen A
Zach A
最终数据:
Name Department
Joe A
Joe B
Joe C
Joe D
Ellen A
Ellen B
Ellen C
Ellen D
Zach A
Zach B
Zach C
Zach D
我知道这可以在某种 for 循环中完成,但我是 Pandas 的新手,任何帮助将不胜感激。
解决方案
您可以尝试将所有部门作为列表分配给每个名称,然后.explode
:
df = df.assign(Department=[["A", "B", "C", "D"]] * len(df)).explode(
"Department"
)
print(df)
印刷:
Name Department
0 Joe A
0 Joe B
0 Joe C
0 Joe D
1 Ellen A
1 Ellen B
1 Ellen C
1 Ellen D
2 Zach A
2 Zach B
2 Zach C
2 Zach D
推荐阅读
- linux - 这段代码给了我正确的答案,但我不明白为什么它显示在第 7 行和第 8 行中找不到?
- python - AttributeError:“FigureManagerBase”对象没有属性“window”
- excel - 从单元格中收集数据并分配给一个范围。如何避免自动文本编号?
- vb.net - 文本框和货币格式
- excel - Excel VBA。将单元格列表转换为范围
- r - 将两列强制转换为 R 中的 1 列因子和 1 列对应值以用于数据框
- c# - EPPlus 生成的 Excel 已损坏
- android - 从片段更改主题
- amazon-web-services - 在 CDK 中查找或创建 s3 存储桶?
- html - HTML