Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在具有某些条件的列中查找元素的索引_Python_Pandas_Dataframe - Fatal编程技术网

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