Pandasで連続データの重複を削除する
/
Pandasで連続データの重複を削除します
# 単純な重複削除
単純に重複を削除する場合は,drop_duplicates()を使用します.
import pandas as pd
import numpy as np
df = pd.Series(data=[1,1,1,2,2,2,3,3,3,2,2,3,1,1])
print('----初期データ----')
print(df)
# 一つ手前の要素と異なる要素だけを抜き出す
df = df.drop_duplicates()
print('-----削除後データ----')
print(df)
----初期データ----
0 1
1 1
2 1
3 2
4 2
5 2
6 3
7 3
8 3
9 2
10 2
11 3
12 1
13 1
dtype: int64
-----削除後データ----
0 1
3 2
6 3
dtype: int64
# 連続する場合の重複削除
単純に重複を削除する場合は,df.shift(1)で「1行ずらしたデータフレーム」を生成してします.
そして,上記のデータフレームと一致することを条件に抽出することで,連続する場合の重複削除されているデータフレームを擬似的に生成します.
import pandas as pd
import numpy as np
df = pd.Series(data=[1,1,1,2,2,2,3,3,3,2,2,3,1,1])
print('----初期データ----')
print(df)
# 一つ手前の要素と異なる要素だけを抜き出す
df = df[df != df.shift(1)]
print('-----削除後データ----')
print(df)
----初期データ----
0 1
1 1
2 1
3 2
4 2
5 2
6 3
7 3
8 3
9 2
10 2
11 3
12 1
13 1
dtype: int64
-----削除後データ----
0 1
3 2
6 3
9 2
11 3
12 1
dtype: int64
# まとめ
Pandasで連続データの重複を削除しました.