您可以使用duplicated布尔掩码,然后将NaNs设置为loc,mask或numpy.where:
df.loc[df['B'].duplicated(), 'B'] = np.nan
Run Code Online (Sandbox Code Playgroud)
df['B'] = df['B'].mask(df['B'].duplicated())
Run Code Online (Sandbox Code Playgroud)
df['B'] = np.where(df['B'].duplicated(), np.nan,df['B'])
Run Code Online (Sandbox Code Playgroud)
如果需要按B列删除重复行的替代方法:
df = df.drop_duplicates(subset=['B'])
Run Code Online (Sandbox Code Playgroud)
样本:
df = pd.DataFrame({
'B': [1,2,1,3],
'A':[1,5,7,9]
})
print (df)
A B
0 1 1
1 5 2
2 7 1
3 9 3
df.loc[df['B'].duplicated(), 'B'] = np.nan
print (df)
A B
0 1 1.0
1 5 2.0
2 7 NaN
3 9 3.0
df = df.drop_duplicates(subset=['B'])
print (df)
A B
0 1 1
1 5 2
3 9 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |