gpt4 book ai didi

python - 根据多个标准查找重复项

转载 作者:行者123 更新时间:2023-11-30 21:57:35 25 4
gpt4 key购买 nike

我有一组金融交易,其中包含日期金额说明来源,我想要查找金额相同、日期在一天内但来源不同的交易。来源应该不同,因为交易是从多个来源导入的,并且每个来源都有唯一的条目。

例如,我想查找第 1 行和第 3 行是重复的:

'date','amount','description','source'
1/5/2018, 5.28, 'McDonalds', 'BankOfAmerica'
1/6/2018, 8.44, 'Starbucks', 'BankOfAmerica'
1/5/2018, 5.28, 'McDonalds Rest', 'BoA'
2/10/2018, 22.72, 'Chipolte', 'Chase'
3/10/2018, 4.58, 'Wendys', 'BoA'

我在 Python 中尝试过,我可以通过以下方式找到重复项:

df_no_dups = df.drop_duplicates(subset=['amount','dates'])
df_dups = df[~df.isin(df_no_dups)].dropna()

但这是一个精确的日期匹配,然后我必须运行另一个脚本以确保来源不同。

我还尝试按金额进行分组,然后在其中进行迭代以查找日期接近且来源不同的位置,但我无法弄清楚组的详细信息。

其他方法可以使用 SQL 或在交易所在的电子表格 (google) 中。

最佳答案

考虑以下数据(在第 3 行中添加一行以便更好地理解)

data = pd.compat.StringIO("""5 Jan, 5.28, 'McDonalds', 'BankOfAmerica'
6 Jan, 8.44, 'Starbucks', 'BankOfAmerica'
5 Jan, 5.28, 'McDonalds Rest', 'BoA'
5 Jan, 5.28, 'McDonalds Rest', 'BankOfAmerica'
10 Feb, 22.72, 'Chipolte', 'Chase'""")
df = pd.read_csv(data,header=None)
df.columns=['Date','Amount','Dscription','Source']
print(df)

Date Amount Dscription Source
0 5 Jan 5.28 'McDonalds' 'BankOfAmerica'
1 6 Jan 8.44 'Starbucks' 'BankOfAmerica'
2 5 Jan 5.28 'McDonalds Rest' 'BoA'
3 5 Jan 5.28 'McDonalds Rest' 'BankOfAmerica'
4 10 Feb 22.72 'Chipolte' 'Chase'

对于重复项和不同来源:

df_dups =df[df.duplicated(['Date','Amount'],keep=False)]
df_dups =df_dups.drop_duplicates(['Date','Amount','Source'],keep=False)
print(df_dups)


Date Amount Dscription Source
0 5 Jan 5.28 'McDonalds' 'BankOfAmerica'
2 5 Jan 5.28 'McDonalds Rest' 'BoA'
<小时/>

对于没有重复(基本上拉动所有其他行df-df_dup):

no_dups=df.loc[~df.index.isin(df_dups.index)]
print(no_dups)

Date Amount Dscription Source
1 6 Jan 8.44 'Starbucks' 'BankOfAmerica'
3 5 Jan 5.28 'McDonalds Rest' 'BankOfAmerica'
4 10 Feb 22.72 'Chipolte' 'Chase'

关于python - 根据多个标准查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55206429/

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