首页 > 解决方案 > Python:如何在某些条件下找到列中元素的索引

问题描述

这是我的数据集

import pandas as pd
df={'A':['1@1','2,3','3,4',5]}
df=pd.DataFrame(df1)
df
A
0   1@1
1   2,3
2   3,4
3   5

我想在 A 列中找到具有","

我试过这段代码,但它不工作

Index=[]
for i in df["A"]:
    if ("," in i):
        Index.append(df["A"][i].index)
    else:
        continue

标签: pythonpandasdataframe

解决方案


boolean indexingindex和用于测试子串一起使用Series.str.contains

Index = df.index[df["A"].str.contains(',', na=False)].tolist()
print (Index)
[1, 2]

如果还需要不匹配的值,则将掩码保存到变量,对于不匹配的索引值,则通过以下方式反转掩码~

mask = df["A"].str.contains(',', na=False)
Index1 = df.index[mask].tolist()
print (Index1)
[1, 2]

Index2 = df.index[~mask].tolist()
print (Index2)
[0, 3]

推荐阅读