gpt4 book ai didi

python - 如何使用多个 contains 变量简化 .str.contains 代码?

转载 作者:行者123 更新时间:2023-12-01 07:31:54 25 4
gpt4 key购买 nike

我正在使用 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:只能将 str (不是“int”)连接到 str”,然后将 str() 添加到 for 循环中的 i 并收到以下错误“TypeError:无法解压不可迭代的 int 对象”

最佳答案

total_joined_list=[joined_groc_lst,joined_util_lst]

groc_amount, util_amount = (abs(round(df.loc[df['Description'].str.contains(f'\b{e}\b',na=False),'Amount'].sum(),2)) for e in total_joined_list)

我已经改变了你的forloop到一个生成器中,该生成器允许解包数据以获得列表中的每个项目。

关于python - 如何使用多个 contains 变量简化 .str.contains 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57175033/

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