Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
176 views
in Technique[技术] by (71.8m points)

python - pandas: how to eliminate rows with value ending with a specific character?

I have a pandas DataFrame as follows:

mail = DataFrame({'mail' : ['adv@gmail.com', 'fhngn@gmail.com', 'foinfo@yahoo.com', 'njfjrnfjrn@yahoo.com', 'nfjebfjen@hotmail.com', 'gnrgiprou@hotmail.com', 'jfei@hotmail.com']})

that looks like:

                    mail
0          adv@gmail.com
1        fhngn@gmail.com
2       foinfo@yahoo.com
3   njfjrnfjrn@yahoo.com
4  nfjebfjen@hotmail.com
5  gnrgiprou@hotmail.com
6       jfei@hotmail.com

What I want to do is to filter out (elimiante) all those rows in which the value in the column mail ends with '@gmail.com'.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use str.endswith and negate the result of the boolean Series with ~:

mail[~mail['mail'].str.endswith('@gmail.com')]

Which produces:

                    mail
2       foinfo@yahoo.com
3   njfjrnfjrn@yahoo.com
4  nfjebfjen@hotmail.com
5  gnrgiprou@hotmail.com
6       jfei@hotmail.com

Pandas has many other vectorised string operations which are accessible through the .str accessor. Many of these are instantly familiar from Python's own string methods, but come will built in handling of NaN values.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...