用空字符串替换重复值

Ran*_*jit 1 python pandas

我有一个熊猫数据框

df = pd.DataFrame([{'a':'Male','c1':3,'c2':10},{'a':'Male','c1':3, 'c2':30},{'a':'Male','c1':1,'c2':20},{'a':'Female','c1':2,'c2':15},{'a':'Female','c1':2,'c2':100}])
Run Code Online (Sandbox Code Playgroud)

我想打印以下内容:

   a      c1   c2
0  Male   3    10
1              30
2  Male   1    20
3  Female 2    15
4             100
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?

EdC*_*ica 5

我不知道你是否真的想要一个空字符串,或者NaN我在NaN这里使用,你可以测试一列是否有重复的值duplicated,并将这些值设置为你想要的结果,顺便说一下,你需要添加对你的内容的解释期望的结果意味着我们猜测:

In [128]:
df.loc[df['c1'].duplicated(), 'c1'] = np.NaN
df

Out[128]:
   c1   c2
0   3   10
1 NaN   30
2   1   20
3   2   15
4 NaN  100
Run Code Online (Sandbox Code Playgroud)

空白字符串版本:

In [131]:
df.loc[df['c1'].duplicated(), 'c1'] = ''
df

Out[131]:
  c1   c2
0  3   10
1      30
2  1   20
3  2   15
4     100
Run Code Online (Sandbox Code Playgroud)

编辑

你更新了你的问题,所以我更新了我的答案:

In [143]:
df.loc[(df['a'].duplicated() & df['c1'].duplicated()), ['a','c1']] = ''
df

Out[143]:
        a c1   c2
0    Male  3   10
1              30
2    Male  1   20
3  Female  2   15
4             100
Run Code Online (Sandbox Code Playgroud)