Python:如何在具有某些条件的列中查找元素的索引
这是我的数据集Python:如何在具有某些条件的列中查找元素的索引,python,pandas,dataframe,Python,Pandas,Dataframe,这是我的数据集 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:
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
与索引一起使用,用于测试子字符串:
如果还需要不匹配的值,则将掩码保存到变量,对于不匹配的索引值,通过~
反转掩码:
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]
代码中的问题不是for循环,而是df的定义。您已经将df定义为同时包含整数和字符串,并且正在尝试基于字符串操作获取逗号,这会引发错误。 df的正确定义是-- 在此之后,您的代码应该可以正常工作:) 编辑: 如果您想继续使用字典df,请将for循环定义为--
我还想要没有“,”的索引
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]
df={'A':['1@1','2,3','3,4','5']}
for i in df["A"]:
i=str(i)
if ("," in i):
Index.append(df["A"][i].index)
else:
continue