gpt4 book ai didi

python - 创建模糊重复键以使用模糊匹配对行求和 (Pandas)

转载 作者:行者123 更新时间:2023-12-05 05:35:47 24 4
gpt4 key购买 nike

所以我有一个表格,我在其中确定了模糊匹配和金额。我希望能够通过这个公共(public)键来汇总金额。

我的数据是这样的:

<表类="s-表"><头>姓名匹配1比赛2数量<正文>詹姆詹姆斯吉姆1詹姆詹姆斯吉姆2迈克麦克斯三池3詹姆斯詹姆吉姆4吉姆詹姆詹姆斯5麦克斯迈克三池6三池迈克麦克斯7
data = {'Name': {0: 'Jame',
1: 'Jame',
2: 'Mike',
3: 'James',
4: 'Jim',
5: 'Mikes',
6: 'Miike'},
'Match1': {0: 'James',
1: 'James',
2: 'Mikes',
3: 'Jame',
4: 'Jame',
5: 'Mike',
6: 'Mike'},
'Match2': {0: 'Jim',
1: 'Jim',
2: 'Miike',
3: 'Jim',
4: 'James',
5: 'Miike',
6: 'Mikes'},
'Amount': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7}}

df = pd.DataFrame.from_dict(data)

我希望我的结果表看起来像:

<表类="s-表"><头>键姓名匹配1比赛2数量<正文>詹姆詹姆詹姆斯吉姆1詹姆詹姆詹姆斯吉姆2迈克迈克麦克斯三池3詹姆詹姆斯詹姆吉姆4詹姆吉姆詹姆詹姆斯5迈克麦克斯迈克三池6迈克三池迈克麦克斯7

所以我可以这样总结我的数据:

<表类="s-表"><头>姓名数量<正文>詹姆12迈克16

最佳答案

如果您最初拥有数据框的键列表,则可以执行此操作。

mylist = ['Jame','Mike']

df['Key'] = [j for i in df.to_numpy() for j in mylist if j in i]

df.set_index(df.columns[-1]).reset_index(inplace=True)

Key Name Match1 Match2 Amount
0 Jame Jame James Jim 1
1 Jame Jame James Jim 2
2 Mike Mike Mikes Miike 3
3 Jame James Jame Jim 4
4 Jame Jim Jame James 5
5 Mike Mikes Mike Miike 6
6 Mike Miike Mike Mikes 7

然后,您可以执行 groupby.sum 以获得所需的输出。

df.groupby('Key')['Amount'].sum().reset_index()
Key Amount
0 Jame 12
1 Mike 16

更新

通过dataframe获取key,可以使用fuzzywuzzy中的process.extractOne来比较一行中每个元素的匹配百分比。如果小于阈值,我们将更新 key 。

from fuzzywuzzy import process

key = [df.Name[0]]

for row in df.to_numpy():
for i in row:
if 50 < process.extractOne(i, key)[1]:
break
else:
key.append(row[0])
break


key
Out[65]: ['Jame', 'Mike']

关于python - 创建模糊重复键以使用模糊匹配对行求和 (Pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73420207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com