Lya*_*yam 4 python duplicates dataframe pandas
我有一个数据框df,其中一些行相对于列的子集是重复的:
A B C
1 Blue Green
2 Red Green
3 Red Green
4 Blue Orange
5 Blue Orange
Run Code Online (Sandbox Code Playgroud)
我想删除(或用虚拟字符串替换)与Band 相关的重复行的值C,而不删除整行,理想情况下产生:
A B C
1 Blue Green
2 Red Green
3 NaN NaN
4 Blue Orange
5 Nan NaN
Run Code Online (Sandbox Code Playgroud)
根据此线程:在我尝试使用的Pandas 中替换跨列的重复值pd.Series.duplicated,但是我无法让它处理列子集中的重复项。
我还玩过:
is_duplicate = df.loc[df.duplicated(subset=['B','C'])]
df = df.where(is_duplicated==True, 999) # 999 intended as a placeholder that I could find-and-replace later on
Run Code Online (Sandbox Code Playgroud)
然而,这几乎替换了每一列999中的每一行 - 很明显我做错了什么。我很感激有关如何进行的任何建议!
df.loc[df.duplicated(subset=['B','C']), ['B','C']] = np.nan 似乎对我有用。
编辑以包括@ALollz 和@macaw_9227 更正。