python - 如何在Python中分组并粘贴字符串

标签 python string pandas group-by multiple-columns

我的数据如下所示。

ID              Position            Treatment
--20AxECvv-         0           A
--20AxECvv-         -1          C
--20AxECvv-         -2          B
--h9INKewQf-        0           A
--h9INKewQf-        -1          B
zZU7a@8jN           0           C
QUeSNEXmdB          0           C
QUeSNEXmdB          -1          A
qu72Ql@h79          0           C

问题 1:

我想要一个用户(id)根据其位置进行的所有处理,并用“-”分隔。

结果将是:

ID                       Treatment

--20AxECvv-              B-C-A
--h9INKewQf-             B-A
zZU7a@8jN                C
QUeSNEXmdB               A-C
qu72Ql@h79               C

问题2

在了解了所有治疗路径后,我想计算一下治疗C(安慰剂)与A和B一起进行了多少次。

Outcome : 
treatment (placebo)          other treatment           times
C                            A                         2
C                            B                         1

人们最后服用了多少次(当患者服用过其他药物时)

Outcome : 
treatment placebo in last          other treatment           times
C                            A                                1
C                            B                                0

预先感谢您花一些时间回答这些问题:)

最佳答案

我认为你想要 groupby 和 sum

>>> y = pandas.DataFrame(columns=["x", "treatment"], data=[[0,"a"],[1,"b"],[0,"c"]])
>>> y
   x treatment
0  0         a
1  1         b
2  0         c

>>> y.groupby("x").sum()
  treatment
x          
0        ac
1         b

Sum 将连接字符串,因为 python 中的“a”+“b”=“ab”

如果您需要用字符串分隔处理,请尝试

>>> y.groupby("x")["treatment"].apply("-".join)
x
0    a-c
1      b

关于python - 如何在Python中分组并粘贴字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46002817/

相关文章:

python - 如何插入部分 Pandas 数据框

c++ - Windows 上的字符串大小与 Linux 上的不同

string - Matlab字符到字符串的转换问题。使用什么功能?

python - 从 csv 文件读取数据时查找列表的累积和

pandas - 对无效命名列的属性访问

python - 将数据帧转换为字典,其中列具有重复值,字典值作为列表

python - 遍历 json 对象以将根打印到以点分隔的子路径

python - 使用变量 "interpolation"创建导入语句

python - python中的 boolean 文本搜索

swift - 无法将类型 'Never' 的返回表达式转换为返回类型 'String'