吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1533|回复: 7
收起左侧

[求助] Python+pandas根据条件包含apply

[复制链接]
cqwcns 发表于 2020-12-8 16:43
环境是Python+pandas,以下代码是多条件apply,条件是【资源类型】=”自建宽带“或”自建铁通融合宽带“,或【五级地址名称】包含”海心路茂名职业技术学院“。

[Python] 纯文本查看 复制代码
    sheetOnTheWay['是否纳入统计'] = sheetOnTheWay.apply(
        lambda x: "是" if x.资源类型 == '自建宽带' or x.资源类型 == '自建铁通融合宽带' or x.五级地址名称.str.contains(
            '海心路茂名职业技术学院') else "否", axis=1)


但第3个条件,判断包含报错,AttributeError: 'float' object has no attribute 'str',应该怎么改?谢谢。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

787821 发表于 2020-12-8 17:12
看你的提示显示的需要字符串类型,你的是浮点型,查看一下你数据里的数据吧.
我的用法是= data[~data["xx"].str.contains('xx1|xx2') & ~data["xx"].str.startswith("xxx")]  //包含,不包含,左包含
anmox 发表于 2020-12-8 17:27
sheetOnTheWay['是否纳入统计']=‘否’
sheetOnTheWay.loc[(sheetOnTheWay.资源类型=='自建宽带')|(sheetOnTheWay.资源类型=='自建铁通融合宽带')|(sheetOnTheWay.五级地址名称.str.contains('海心路茂名职业技术学院')),'是否纳入统计']='是'

手写的有可能符号不太对,可以照着这个思路试试
yzqhj 发表于 2020-12-8 18:26
把运行截图出来啊,就一句报错,,,数据也没看到,,,看这样子肯定是数据类型问题,这种就先定位哪一行,哪个数据,转一下就ok了
choolyee 发表于 2020-12-8 18:33
一楼应该猜对了,应该是你这一列里混进了纯数字,先把不符合要求的数据清洗出去吧
wanshiz 发表于 2020-12-9 07:01
进来学一下,在看Python。感谢楼主的帖。
rsnodame 发表于 2020-12-9 17:55
如果确定是第三个条件报错的话,说明这一列的数据类型有float啊…………有点怪感觉
 楼主| cqwcns 发表于 2020-12-11 10:17
rsnodame 发表于 2020-12-9 17:55
如果确定是第三个条件报错的话,说明这一列的数据类型有float啊…………有点怪感觉

已解决。

[Python] 纯文本查看 复制代码
    # 资源类型等于自建宽带、自建铁通融合宽带,或包含三个指定地址的,保留,其他清洗
    sheetOnTheWay['是否纳入统计'] = sheetOnTheWay.apply(
        lambda x: "是" if x.资源类型 == '自建宽带' or x.资源类型 == '自建铁通融合宽带' or str(x.五级地址名称).find('海心路茂名职业技术学院') >= 0 or str(
            x.五级地址名称).find('海城路五路1号茂名职业技术学院') >= 0 or str(x.五级地址名称).find('官渡街道文明路茂名职业技术') >= 0 else "否", axis=1)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 09:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表