【问题标题】:How to check string in string with not exact same values?如何检查字符串中值不完全相同的字符串?
【发布时间】:2021-12-08 11:37:41
【问题描述】:

我正在与 Pandas 合作。我需要根据其他列的条件在数据框中创建一个新列。我尝试查找系列中的每个值是否包含一个值(返回文本的条件)。这适用于值完全相同但不是当值只是系列值的一部分时

我也尝试过使用 str.contains,但从未成功 使用精确值的代码:

if ("something" in df2["Symptom"].values):
    print("yes")
else:
    print("no")

当它的值不同时,我得到一个“否”。

【问题讨论】:

    标签: python pandas string dataframe conditional-statements


    【解决方案1】:

    IIUC:

    df2 = pd.DataFrame(data={'Symptom':["I am something", 'I am not', 'Something 2']})
    
    if df2["Symptom"].str.contains('Something').any():
        print("yes")
    else:
        print("no")
    

    OUTPUT: YES

    如果您执行以下操作:

    if df2["Symptom"].str.contains('Something').all():
        print("yes")
    else:
        print("no")
    

    OUTPUT: NO

    【讨论】:

    • 我不能用“in”来做?
    • df2["Symptom"].isin(['Something']) 将寻找完全匹配
    • 使用 .str.contains,我得到了错误:'str' 对象没有属性 'str' 因为 df2["Symptom"] 已经是一个 str。我不知道如何解决这个问题
    • 您确定要将此应用到 pandas 列吗?
    • 我的申请是:df2["A"] = df2.swifter.apply(conditions,axis=1) 当条件满时 if - elif - else,像这样:elif df2["症状"].str.contains("A").any() : if df2["Things"].str.contains("B").any() : 所以我在条件为 str 时创建一个带有条件的新列来自其他列
    猜你喜欢
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2021-10-31
    • 2021-02-02
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多