在熊猫中一次在列中显示通用值

时间:2019-06-27 09:58:07

标签: python pandas

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

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()

1 个答案:

答案 0 :(得分:4)

您可以在列的子集上使用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