我有一个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}])
我想打印下面的文字:
a c1 c2
0 Male 3 10
1 30
2 Male 1 20
3 Female 2 15
4 100
你能帮帮我吗?
答案 0 :(得分:3)
我不知道您是否真的想要一个空白字符串或NaN
但我在这里使用NaN
,您可以使用{{3来测试列是否有重复值并将这些设置为您想要的结果,通过您需要添加对所需结果的解释的方式,而不是我们猜测:
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
空白字符串版本:
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
修改强>
您更新了问题,因此我更新了我的回答:
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