Pandas 根据百分比重复检查?
Pandas duplicate check based on percentage?
我正在尝试清理 csv,但我想根据百分比查找重复项。 (比如:如果第 x 行中的 cellA 的 80% 与另一个单元格匹配,则丢弃)
我已经成功实现了“100% 重复删除”,但希望它根据指定的百分比删除(如果列 'text'
中的字段匹配,例如 70%,则删除行(除了第一场比赛)).
示例 table [resultsg_small.csv]:
id,created_at,text,author_id
1414572338742431746,2021-07-12T13:08:21.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/XrQSvPY7WL,1036548763584581633
1414569270579802121,2021-07-12T12:56:10.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/g2iGgVkUTN,927508165675040770
1414567867333361671,2021-07-12T12:50:35.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/tjeKZLoK44,2523470906
421368378653085698,2021-07-31T07:13:23.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https://url.com/RgiwRkzZtM,1266546608373522435
1421366704014303232,2021-07-31T07:06:44.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィントンポスト)\nMINIATURE LIFE by Tatsuya Tanaka -July 23rd 2021-コロナ禍の五輪をマスクで表現したアート作品史上初のコロナ禍で開催される東京オリンピック…\nhttps://url.com/dRuB6Dttli\n#速報 #ニュース https://url.com/ke2fjFxW2L,839848894670356480
1421365716712833024,2021-07-31T07:02:49.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https://url.com/5zGsZRYQd4,874145167250345984
MWE:
import csv
import re
import pandas as pd
df = pd.read_csv('data/resultsg_small.csv')
df = df[['id','created_at','text','author_id']]
df.drop_duplicates(subset ="text",keep = 'first', inplace = True)
df.to_csv('new.csv')
您可以执行以下操作。浏览您感兴趣的列并创建一个匹配分数列(此处 match_percent
),然后删除任何高于您选择设置的阈值的内容
import pandas as pd
from fuzzywuzzy import process
df = pd.read_csv('nippon.csv')
df2 = pd.DataFrame([process.extract(df['text'][i], df[~df.index.isin([i])]['text'], limit=1)[0] for i in range(len(df))],
index=df.index, columns=['match_text', 'match_percent', 'match_index'])
final = df.join(df2)
final
哪个returns:
id created_at \
0 1414572338742431746 2021-07-12T13:08:21.000Z
1 1414569270579802121 2021-07-12T12:56:10.000Z
2 1414567867333361671 2021-07-12T12:50:35.000Z
3 421368378653085698 2021-07-31T07:13:23.000Z
4 1421366704014303232 2021-07-31T07:06:44.000Z
5 1421365716712833024 2021-07-31T07:02:49.000Z
text author_id \
0 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 1036548763584581633
1 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 927508165675040770
2 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 2523470906
3 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 1266546608373522435
4 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィント... 839848894670356480
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 874145167250345984
match_text match_percent \
0 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
1 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
2 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
3 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィント... 86
4 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 88
match_index
0 1
1 0
2 0
3 4
4 0
5 3
并对其进行过滤:
final_over_87 = final[final['match_percent']>=87]
returns:
id created_at \
5 1421365716712833024 2021-07-31T07:02:49.000Z
text author_id \
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 874145167250345984
match_text match_percent \
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 88
match_index
5 3
我正在尝试清理 csv,但我想根据百分比查找重复项。 (比如:如果第 x 行中的 cellA 的 80% 与另一个单元格匹配,则丢弃)
我已经成功实现了“100% 重复删除”,但希望它根据指定的百分比删除(如果列 'text'
中的字段匹配,例如 70%,则删除行(除了第一场比赛)).
示例 table [resultsg_small.csv]:
id,created_at,text,author_id
1414572338742431746,2021-07-12T13:08:21.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/XrQSvPY7WL,1036548763584581633
1414569270579802121,2021-07-12T12:56:10.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/g2iGgVkUTN,927508165675040770
1414567867333361671,2021-07-12T12:50:35.000Z,【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https://url.com/tjeKZLoK44,2523470906
421368378653085698,2021-07-31T07:13:23.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https://url.com/RgiwRkzZtM,1266546608373522435
1421366704014303232,2021-07-31T07:06:44.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィントンポスト)\nMINIATURE LIFE by Tatsuya Tanaka -July 23rd 2021-コロナ禍の五輪をマスクで表現したアート作品史上初のコロナ禍で開催される東京オリンピック…\nhttps://url.com/dRuB6Dttli\n#速報 #ニュース https://url.com/ke2fjFxW2L,839848894670356480
1421365716712833024,2021-07-31T07:02:49.000Z,マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https://url.com/5zGsZRYQd4,874145167250345984
MWE:
import csv
import re
import pandas as pd
df = pd.read_csv('data/resultsg_small.csv')
df = df[['id','created_at','text','author_id']]
df.drop_duplicates(subset ="text",keep = 'first', inplace = True)
df.to_csv('new.csv')
您可以执行以下操作。浏览您感兴趣的列并创建一个匹配分数列(此处 match_percent
),然后删除任何高于您选择设置的阈值的内容
import pandas as pd
from fuzzywuzzy import process
df = pd.read_csv('nippon.csv')
df2 = pd.DataFrame([process.extract(df['text'][i], df[~df.index.isin([i])]['text'], limit=1)[0] for i in range(len(df))],
index=df.index, columns=['match_text', 'match_percent', 'match_index'])
final = df.join(df2)
final
哪个returns:
id created_at \
0 1414572338742431746 2021-07-12T13:08:21.000Z
1 1414569270579802121 2021-07-12T12:56:10.000Z
2 1414567867333361671 2021-07-12T12:50:35.000Z
3 421368378653085698 2021-07-31T07:13:23.000Z
4 1421366704014303232 2021-07-31T07:06:44.000Z
5 1421365716712833024 2021-07-31T07:02:49.000Z
text author_id \
0 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 1036548763584581633
1 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 927508165675040770
2 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 2523470906
3 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 1266546608373522435
4 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィント... 839848894670356480
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 874145167250345984
match_text match_percent \
0 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
1 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
2 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
3 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) (ハフィント... 86
4 【コロナ禍オリンピック】深夜0時の渋谷センター街、ヤバい…マジで東京が酷すぎる… https... 86
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 88
match_index
0 1
1 0
2 0
3 4
4 0
5 3
并对其进行过滤:
final_over_87 = final[final['match_percent']>=87]
returns:
id created_at \
5 1421365716712833024 2021-07-31T07:02:49.000Z
text author_id \
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 874145167250345984
match_text match_percent \
5 マスクがプールや陸上トラックに変身。コロナ禍オリンピックをアートで体現(画像) https:... 88
match_index
5 3