pandas筛选数据时可能会遇到的报错

df[df['director'].str.contains('|', regex=False)]
## output
ValueError: cannot index with vector containing NA / NaN values

## 仔细查看数据
df.director.str.contains('|', regex=False).unique()
## output, 发现错误是nan造成的,所以要先筛选非空数据
array([False, True, nan], dtype=object)

## 对比 regex=True时的情况
df.director.str.contains('|').unique()
## output, 居然全部都包含'|',显然时错误的!
array([True, nan], dtype=object)

# 先筛选非空数据就ok了
df = df[df['director'].notnull()]
df[df['director'].str.contains('|', regex=False)].director
## output
8                                 Kyle Balda|Pierre Coffin
11                          Lana Wachowski|Lilly Wachowski
64                                Glenn Ficarra|John Requa
85                John Francis Daley|Jonathan M. Goldstein
100                                Chris Buck|Jennifer Lee
···
10794                        Richard A. Colla|Alan J. Levi
10797                             Warren Beatty|Buck Henry
10815                                  Eric Idle|Gary Weis
10819                               Chuck Jones|Ben Washam
10842                         Basil Dearden|Eliot Elisofon
Name: director, Length: 754, dtype: object

.contains('|', regex=False),regex默认为True,regex=False表明第一个参数不是正则表达式,而是一般的字符串。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值