如何使用包含条件:AttributeError:'str'对象没有属性'contains'

时间:2020-08-23 12:35:59

标签: python pandas contains

我喜欢循环并检查单元格是否包含“ Ac”或“ Vt字符串”

那是我的df

data={"col1":[2,3,4,5],
"col2":[4,2,4,6],
"col3":[7,6,9,11],
"col4":[14,11,22,8],
"name":["Acsd","Adgf","Vty","Acdf"],
"multi":[1.4,2.5,1.6,2.2]}
df=pd.DataFrame.from_dict(data)
print(df)

我试试这个:

for count1, i in enumerate(df["col1"]):
    if df.at[i, "name"].contains("Ac|Vt"):
        print("good")

我得到那个错误

AttributeError:“ str”对象没有属性“包含”

我该如何使用包含方式?

3 个答案:

答案 0 :(得分:2)

您可以避免完全使用for循环。

为什么不只使用df["name"].str.contains("Ac|Vt")

您也可以将结果添加为单独的列:

df.loc[df["name"].str.contains("Ac|Vt"), "status"] = "good"

答案 1 :(得分:2)

让我们尝试使用DataFrame.iterrows

for _, j in df.iterrows():
    if "Ac" in j['name'] or "Vt" in j['name']:
        print('Good')

答案 2 :(得分:1)

无需循环执行。

df.loc[(df.name.str.contains('Ac')|df.name.str.contains('Vt'))]