gpt4 book ai didi

python - 将单元格值映射或替换为 pandas 中相应的字符串值

转载 作者:行者123 更新时间:2023-11-30 22:18:45 25 4
gpt4 key购买 nike

我有一个包含“pid”、“code”、“type”和“note”列的数据框。每个 pid(患者 ID)都与诊断和药物相关联。它们都有代码和注释(参见示例)。每个代码可以有多个注释。如何用相应的第一次看到的注释和类型替换所有代码?执行 for 循环不是一种选择。

请注意,例如,代码 A 在 IN 中同时具有 alvedon 和 ipren,但在 OUT 中仅具有 alvedon。这样做,我可以通过名称而不是代码来识别它们。

输入:

pid  code  type  note
1 A M alvedon
1 B D pain
1 C M ulcer
2 A M ipren
2 B D hurt
3 A M alvedon
3 B D hurt
3 C M stomach
4 A M ipren
4 B D pain
5 A M ipren
5 B D pain

输出:

pid  code
1 A_M_alvedon
1 B_D_pain
1 C_M_ulcer
2 A_M_alvedon
2 B_D_pain
3 A_M_alvedon
3 B_D_pain
3 C_M_ulcer
4 A_M_alvedon
4 B_D_pain
5 A_M_alvedon
5 B_D_pain

我已经走到这一步了:

df.groupby('code').note.agg(['first'])

但这只给了我分组:

输出:

code  type  note
A alvedon
B pain
C ulcer

最佳答案

您可以像您正在做的那样对代码进行连接,然后进行分组,然后进行转换:

In [9]: df["out"] = (
(df["code"] + "_" + df["type"] + "_" + df["note"]).groupby(df["code"]).transform("first"))

In [10]: df
Out[10]:
pid code type note out
0 1 A M alvedon A_M_alvedon
1 1 B D pain B_D_pain
2 1 C M ulcer C_M_ulcer
3 2 A M ipren A_M_alvedon
4 2 B D hurt B_D_pain
5 3 A M alvedon A_M_alvedon
6 3 B D hurt B_D_pain
7 3 C M stomach C_M_ulcer
8 4 A M ipren A_M_alvedon
9 4 B D pain B_D_pain
10 5 A M ipren A_M_alvedon
11 5 B D pain B_D_pain

关于python - 将单元格值映射或替换为 pandas 中相应的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49283249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com