我试图创建一个简单的数据框架,导入一个CSV文件,其中包含3列['Date'、'Amount'、'Description']作为银行事务。 然后应用一个代码。我创建了一个简单的函数来返回代码
def codelookup(string):
code_dict = {'GOLFBOX':'Golf Clubs','HARVEY NORMAN': 'TECH','AMAZON': 'TECH'}
for code in code_dict:
if code in string:
return str(code_dict[code])
break
else:
return 'Other'
df_data = pd.DataFrame({'Date': ['28/12/18','28/12/18','27/12/18'],
'Amount': [-307.99,-14,-43.86],
'Description': ['GOLFBOX OSBORNE PARK OSBORNE PARK','CLUBLINKS MANAGEMENT P COMO','WOOLWORTHS 4301 PERTH']})
df_data["Code"] = codelookup(df_data['Description'])
df_data
在3个事务中的每个事务中,随函数返回的结果都是“Other”。它没有正确地将“描述”发送到函数,因为函数只处理一个简单的调用
我是一个新手,所以很抱歉我的问题的描述,希望看到一个更干净的方式来做这个查找
敬礼 JDLove公司
您将
['GOLFBOX OSBORNE PARK OSBORNE PARK','CLUBLINKS MANAGEMENT P COMO','WOOLWORTHS 4301 PERTH']
作为参数发送给codelookup
,其中列表不是字符串,您使用的是条件if code in string:
,如果匹配任何记录(不是单个记录中的每个单词),它将实际查找上面列表中的单词。 您可以尝试将列表转换为字符串,然后尝试:使用
方法。您需要为每一行逐个调用此函数,而不是一次传递一个系列。 试试这个:
相关问题 更多 >
编程相关推荐