【发布时间】:2019-07-24 03:57:58
【问题描述】:
我正在使用 Series.str.contains() 函数来查找字典中的值是否包含在特定列的字符串中。我的代码有效,但我正在尝试简化它。
我尝试使用 for 循环遍历列表中的值。我的尝试在下面。
total_joined_list=[joined_groc_lst,joined_util_lst]
for i in range(len(total_joined_list)):
groc_amount,util_amount=abs(round(df.loc[df['Description'].str.contains('\b'+i+'\b',na=False),'Amount'].sum(),2))
这是当前的工作代码。
joined_groc_lst = '|'.join(expenses_dict['Groceries'])
joined_util_lst = '|'.join(expenses_dict['Utilities'])
groc_amount=abs(round(df.loc[df['Description'].str.contains('\b'+joint_groc_lst+'\b',na=False),
'Amount'].sum(),2))
util_amount=abs(round(df.loc[df['Description'].str.contains('\b'+joint_util_lst+'\b',na=False),
'Amount'].sum(),2))
我希望我的函数创建两个变量; groc_amount 和 util_amount,我就可以打印我的结果了。我收到此错误“TypeError: can only concatenate str (not "int") to str" 然后将 str() 添加到我的 for 循环中的 i 并收到以下错误“TypeError: cannot unpack non-iterable int object”
【问题讨论】:
-
你能提供一些
joined_groc_lst和joined_util_lst的值吗?
标签: python python-3.x dataframe dictionary