パンダ(テキスト重複排除)は、列に基づいて重複する行を削除します
方法1:
Seriesオブジェクトの一意の値を取得するために使用されるunique()関数。
import pandas as pd
dic = {
'name':['a', 'b', 'c', 'd'], 'comment':['abc', '真棒', '真棒', '123']}
df = pd.DataFrame(dic)
df
Out[4]:
name comment
0 a abc
1 b 真棒
2 c 真棒
3 d 123
df['comment'] = pd.DataFrame(df['comment'].unique())
df
Out[5]:
name comment
0 a abc
1 b 真棒
2 c 123
3 d NaN
# 删除comment中的空值
df = df.dropna(subset=['comment'])
df
Out[6]:
name comment
0 a abc
1 b 真棒
2 c 123
方法2:
drop_duplicates(subset = ['comment']、keep = 'first'、inplace = True)
サブセット:重複排除する列の名前をリストの形式で入力します。デフォルトはNoneです。これは、ベースになっていることを意味します。すべての列に。
keep:「first」、「last」、Falseの3つのオプションのパラメーターがあり、デフォルト値は「first」です。その中で、
(1)最初の意味:最初に表示される重複行を保持し、後続の重複行を削除します。
(2)最後の手段:重複を削除し、最後の出現を保持します。
(3)Falseは、すべての重複を削除することを意味します。
インプレース:デフォルトはFalseで、重複を削除すると重複が返されます。確かに、元のデータから直接重複アイテムを削除します。
import pandas as pd
dic = {
'name':['a', 'b', 'c', 'd'], 'comment':['abc', '真棒', '真棒', '123']}
df = pd.DataFrame(dic)
df
Out[6]:
name comment
0 a abc
1 b 真棒
2 c 真棒
3 d 123
df.drop_duplicates(keep='first', inplace=True)
df
Out[14]:
name comment
0 a abc
1 b 真棒
2 c 真棒
3 d 123
デフォルトではサブセットはNoneです。すべての列を考慮すると、列1と2のコメントは同じですが、名前は同じではないため、使用時の特定の状況に応じて予約および選択されます。
df.drop_duplicates(subset=['comment'], keep='first', inplace=True)
df
Out[16]:
name comment
0 a abc
1 b 真棒
3 d 123
この列の重複する値を削除するには、サブセットをコメントに設定します。現時点ではインデックスはリセットされません。必要に応じて、以下の方法でインデックスをリセットできます。
df.reset_index(drop=True, inplace=True)
df
Out[18]:
name comment
0 a abc
1 b 真棒
2 d 123