python中dataframe 判断是否存在,如何检查DataFrame单元格中是否存在字符

After creating the three-rows DataFrame:

import pandas as pd

df = pd.DataFrame({'a': ['1-2', '3-4', '5-6']})

I check if there is any cell equal to '3-4':

df['a']=='3-4'

5bcb515b79108898d9faa006cc422a6d.png

Since df['a']=='3-4' command results to pandas.core.series.Series object I can use it to create a "filtered" version of the original DataFrame like so:

filtered = df[ df['a']=='3-4' ]

55eab6f3a06c0b9f3f7d6c6b03f186b6.png

In Python I can check for the occurrence of the string character in another string using:

string_value = '3-4'

print('-' in string_value)

What would be a way to accomplish the same while working with DataFrames?

So, I could create the filtered version of the original DataFrame by

checking if '-' character in every row's cell, like:

filtered = df['-' in df['a']]

But this syntax above is invalid and throws KeyError: False error message.

解决方案

Use str and contains:

In [5]: df['a'].str.contains('-')

Out[5]:

0 True

1 True

2 True

Name: a, dtype: bool

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值