【发布时间】:2021-12-23 10:53:31
【问题描述】:
我有一个 df:
pageid
sid vid
1 ABC dog
ABC dog
ABC dog
ABC dog
2 DEF cat
DEF cat
DEF pig
DEF cat
3 GHI pig
GHI cat
GHI dog
GHI dog
构造函数:
import pandas as pd
i = pd.MultiIndex.from_arrays(
[[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
['ABC', 'ABC', 'ABC', 'ABC', 'DEF', 'DEF', 'DEF', 'DEF', 'GHI', 'GHI',
'GHI', 'GHI']],
names=('sid', 'vid')
)
df = pd.DataFrame({
'pageid': ['dog', 'dog', 'dog', 'dog', 'cat', 'cat', 'pig', 'cat',
'pig', 'cat', 'dog', 'dog']
}, index=i)
我想基本上从pageid 列中删除重复项,如果它们存在于会话中,sid 并且当且仅当它们连续达到n 次。我发现的唯一示例使用 .shift() 如果我不必担心 n > 1 重复,它会很好地工作。不幸的是,在某些情况下,我得到了类似 n = 30 个连续重复的情况。
之前:
pageid
sid vid
1 ABC dog
ABC dog
ABC dog
ABC dog
2 DEF cat
DEF cat
DEF pig
DEF cat
3 GHI pig
GHI cat
GHI dog
GHI dog
之后:
pageid
sid vid
1 ABC dog
2 DEF cat
DEF pig
DEF cat
3 GHI pig
GHI cat
GHI dog
【问题讨论】:
标签: python pandas dataframe duplicates