[英]Drop only specific consequtive duplicates in a pandas dataframe
我有以下 dataframe,只有當它們等於 0.3 或 0.4 時,我才需要從中刪除連續的重復值。
In [2]: df = pd.DataFrame(index=pd.date_range('20020101', periods=7, freq='D'),
data={'poll_support': [0.3, 0.4, 0.4, 0.4, 0.3 0.5 0.5]})
In [3]: df
Out[3]:
poll_support
2002-01-01 0.3
2002-01-02 0.4
2002-01-03 0.4
2002-01-04 0.4
2002-01-05 0.3
2002-01-06 0.5
2002-01-07 0.5
我需要 df 看起來像這樣:
2002-01-01 0.3
2002-01-02 0.4
2002-01-05 0.3
2002-01-06 0.5
2002-01-07 0.5
我試過了:
for var in df['poll_support']:
if var == 0.3 or var == 0.4:
df['poll_support']= df['poll_support'].loc[df['poll_support'].shift() != 0.3]
df['poll_support']= df['poll_support'].loc[df['poll_support'].shift() != 0.4]
但是,這不會產生所需的 df。
我很想聽聽建議。
Boolean 索引會有所幫助。 嘗試:
df[~((df['poll_support']==df['poll_support'].shift())&(df['poll_support'].isin([0.3,0.4])))]
poll_support
2002-01-01 0.3
2002-01-02 0.4
2002-01-05 0.3
2002-01-06 0.5
2002-01-07 0.5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.