我只想从数据框中删除特定子集中的重复项。在“A”列中的每个“规范”下,我想删除重复项,但我想在整个数据框中保留重复项(第一个“规范”下可能有一些行与第二个“规范”,但在“规范”下直到下一个“规范”我想删除重复项)
这是数据框
df
A B C
spec first second
test text1 text2
act text12 text13
act text14 text15
test text32 text33
act text34 text35
test text85 text86
act text87 text88
test text1 text2
act text12 text13
act text14 text15
test text85 text86
act text87 text88
spec third fourth
test text1 text2
act text12 text13
act text14 text15
test text85 text86
act text87 text88
test text1 text2
act text12 text13
act text14 text15
test text85 text86
act text87 text88
这就是我想要的:
df
A B C
spec first second
test text1 text2
act text12 text13
act text14 text15
test text32 text33
act text34 text35
test text85 text86
act text87 text88
spec third fourth
test text1 text2
act text12 text13
act text14 text15
test text85 text86
act text87 text88
我可以将数据帧拆分为“小”数据帧,然后在 for 循环中为每个“小”数据帧删除重复项,最后将它们连接起来,但我想知道是否还有其他解决方案。
我也尝试过并成功了:
dfList = df.index[df["A"] == "spec"].tolist()
dfList = np.asarray(dfList)
for dfL in dfList:
idx = np.where(dfList == dfL)
if idx[0][0]!=(len(dfList)-1):
df.loc[dfList[idx[0][0]]:dfList[idx[0][0]+1]-1]
= df.loc[dfList[idx[0][0]]:dfList[idx[0][0]+1]-1].drop_duplicates()
else:
df.loc[dfList[idx[0][0]]:] = df.loc[dfList[idx[0][0]]:].drop_duplicates()
编辑:我必须将其添加到最后:
df.dropna(how='all', inplace=True)
但我只是想知道是否还有其他解决方案。
侃侃无极
湖上湖
狐的传说
相关分类