我有一个格式为纯文本的文件(我添加了列标题)

CASE        Diagnosis
  S1 no diagnosis
  S2 fungus
     squamous lesion
  S3 fungus
  S4 squamous lesion
     glandular lesion
     atypia


我想通过多个诊断来堆叠和拆箱案例,所以我想

CASE DxN         Diagnosis
  S1 A   no diagnosis
  S2 A   fungus
     B   squamous lesion
  S3 A   fungus
  S4 A   squamous lesion
     B   glandular lesion
     C   atypia




CASE                 A                 B       C
  S1 no diagnosis
  S2 fungus             squamous lesion
  S3 fungus
  S4 squamous lesion    glandular lesion  atypia


如何使该子系列成为DxN?计数永远不应大于F。即使有10,000个可能的答案,每个案例也永远不会超过6个,因此,最多不能超过6列。我只想“对于案例S1,诊断A是什么,对于案例S1,诊断B是什么,对于案例S1,诊断3是什么?”我不想为每个可能的答案都列出专栏。

最佳答案

这是您需要的吗?

    df=df.replace('',np.nan).ffill()
    df.assign(DxN=df.groupby('CASE').cumcount()).set_index(['CASE','DxN']).Diagnosis.unstack(fill_value='')
    Out[709]:
    DxN                0                1
    CASE
    S1       nodiagnosis
    S2            fungus   squamouslesion
    S3            fungus
    S4    squamouslesion  glandularlesion

关于python - Pandas :如何创建运行计数列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48588960/

10-12 17:45
查看更多