我正在努力理解Lambdas的功能,因为它与Pandas 有关. 我正在try 创建一个新的专栏,基于(A)栏中是否出现某个词("上诉"、"审计"、"判断")

但是,我收到以下错误:

AttributeError:‘Str’对象没有属性‘str’

d = {"A":["Assessment Division","Division of Appeals","Calgary Audit","Halifax Market","Georgian Markers"],
"B":[100,300,400,500,400]

sample = pd.DataFrame(d)

sample["results"] = sample["A"].apply(lambda x: "Invoice" if x.str.contains("Audit") or x.str.contains("Appeals") or x.str.contains("Assessment") else "NoAction")


我还try 这样做,试图缩短代码,但收到了相同的错误:

d = {"A":["Assessment Division","Division of Appeals","Calgary Audit","Halifax Market","Georgian Markers"],
"B":[100,300,400,500,400]

sample = pd.DataFrame(d)

reqs = ["Audit","Appeals","Assessment"]

sample["results"] = sample["A"].apply(lambda x: "Invoice" if x.str.contains().isin(reqs) else "NoAction")

推荐答案

您可以使用any()来判断字符串是否包含reqs中的任何单词:

reqs = ["Audit","Appeals","Assessment"]

mask = sample['A'].apply(lambda x: any(r in x for r in reqs))
sample['results'] = np.where(mask, 'Invoice', 'NoAction')

print(sample)

打印:

                     A    B   results
0  Assessment Division  100   Invoice
1  Division of Appeals  300   Invoice
2        Calgary Audit  400   Invoice
3       Halifax Market  500  NoAction
4     Georgian Markers  400  NoAction

编辑:一行:

sample['results'] = sample['A'].apply(lambda x: 'Invoice' if any(r in x for r in reqs) else 'NoAction')

Python相关问答推荐

不同数据类型的Python成员变量不会在具有相同优先级的不同线程中更新

尽管进程输出错误消息,subProcess.check_call的CalledProcess错误.stderr为无

如何在Pygame中绘制右对齐的文本?

使用Python和PRNG(不是梅森龙卷风)有效地生成伪随机浮点数在[0,1)中均匀?

使用图片生成PDF Django rest框架

Tkinter滑动条标签.我不确定如何删除滑动块标签或更改其文本

Python中的函数中是否有充分的理由接受float而不接受int?

计算相同形状的两个张量的SSE损失

如何才能知道Python中2列表中的巧合.顺序很重要,但当1个失败时,其余的不应该失败或是0巧合

如何在图片中找到这个化学测试条?OpenCV精明边缘检测不会绘制边界框

try 与gemini-pro进行多轮聊天时出错

处理(潜在)不断增长的任务队列的并行/并行方法

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

在Python中动态计算范围

如何在Python中找到线性依赖mod 2

当我try 在django中更新模型时,模型表单数据不可见

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

ConversationalRetrivalChain引发键错误

Python 3试图访问在线程调用中实例化的类的对象

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?