python - ID重复时的熊猫新列
问题描述
你好社区,
我正在寻找一个新列,其中包含每个 ID 的独特药物列表。
我有一些奇怪/复杂的数据,因为我的 ID 重复:
ID | 药物 |
---|---|
1 | 一个 |
1 | b |
1 | C |
2 | H |
3 | 一个 |
3 | 一个 |
3 | C |
一些 ID 对每种药物都有一行 (ID #1),一些 ID 有重复的药物 (ID #3) 以及非重复的药物。
我想创建一个新列,其中包含每个 ID 的所有独特药物的列表:
ID | 药物 | 药物 |
---|---|---|
1 | 一个 | 甲,乙,丙 |
1 | b | 甲,乙,丙 |
1 | C | 甲,乙,丙 |
2 | H | H |
3 | 一个 | 一个,c |
3 | 一个 | 一个,c |
3 | C | 一个,c |
有人知道如何创建这个吗?
解决方案
df["Medications"] = (df.groupby("ID")
.Medication
.unique()
.agg(", ".join)
.reindex(df.ID).values)
agg
用&重新计算unique
值,然后用join
,
reindex
要得到
ID Medication Medications
0 1 a a, b, c
1 1 b a, b, c
2 1 c a, b, c
3 2 h h
4 3 a a, c
5 3 a a, c
6 3 c a, c
推荐阅读
- android - 两个编辑文本的语音到文本(单个按钮)
- python - 适用于 Python 的 Azure SDK
- java - 如何在android活动中使用多重继承?
- node.js - 制作 page.click 事件后如何收集多个 Json 响应?
- python - 填补时间序列空白的想法(使用统计学习?)
- vb.net - 我可以检查下拉框或组合框是否不包含特定项目吗?
- javascript - nodejs 应用程序如何在特定时间可靠地执行任务?
- mysql - 使用 NodeJS 进行 MySQL 查询的页面刷新时出现 404
- contiki - 如何改变 cooja 上节点的能级
- c# - 如何在 unity3d 和 C# 中移动立方体?