パンダ(テキスト重複排除)は、列に基づいて重複する行を削除します

パンダ(テキスト重複排除)は、列に基づいて重複する行を削除します


方法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

おすすめ

転載: blog.csdn.net/qq_43965708/article/details/109892053