Pandas GroupBy并在不移动单元格的情况下删除重复项



我有一个稍大的数组(约3000行(,其中第一列有一个不同数字的重复字符串值。我希望能够在不移动此列中的单元格的情况下删除这些重复项。

输入

row/rack     shelf    tilt
row1.rack1     B       5
row1.rack1     A       nan
row1.rack2     C       nan
row1.rack2     B       nan
row1.rack2     A       17

所需输出

row/rack     shelf    tilt
row1.rack1     B       5
A       nan
row1.rack2     C       nan
B       nan
A       17

有什么好方法可以做到这一点吗?我一直在stackoverflow和其他网站上搜索,但没能找到这样的

使用.duplicated.loc

df.loc[df['row/rack'].duplicated(keep='first'),'row/rack'] = ''
print(df)
row/rack shelf  tilt
0  row1.rack1     B   5.0
1                 A   NaN
2  row1.rack2     C   NaN
3                 B   NaN
4                 A  17.0

mask具有空字符串的重复项:

df["row/rack"] = df["row/rack"].mask(df["row/rack"].duplicated(), "")
>>> df
row/rack shelf  tilt
0  row1.rack1     B   5.0
1                 A   NaN
2  row1.rack2     C   NaN
3                 B   NaN
4                 A  17.0

相关内容

最新更新