我有一个看起来像这样的数据框:

df = pd.DataFrame({'key': ['K0', 'K0', 'K0', 'K1'],'cat': ['C0', 'C0', 'C1', 'C1'],'B': ['A0', 'A1', 'A2', 'A3']})
df
Out[15]:
  key cat   B
0  K0  C0  A0
1  K0  C0  A1
2  K0  C1  A2
3  K1  C1  A3


是否可以将其转换为:

   key cat B
0  K0  C0  A0
1          A1
2  K0  C1  A2
3  K1  C1  A3


我想避免一次又一次显示keycat的相同值,并且key更改后再次出现cat
这是出于excel的目的,因此我需要与以下设备兼容:

style.apply(f)
to_excel()

最佳答案

您可以在列的子集上使用duplicated查找重复值:

cols = ['key', 'cat']
df.loc[df.duplicated(subset=cols), cols] = ''

  key cat   B
0  K0  C0  A0
1          A1
2  K0  C1  A2
3  K1  C1  A3

关于python - 在 Pandas 中一次在列中显示共同值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56788563/

10-12 16:37