我有一个格式为纯文本的文件(我添加了列标题)
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/