Python 熊猫系列搜索不起作用
我有一个dataframe,其中一列是string类型的“name”。 我想知道那一栏里有没有名字 发生这种情况:Python 熊猫系列搜索不起作用,python,pandas,Python,Pandas,我有一个dataframe,其中一列是string类型的“name”。 我想知道那一栏里有没有名字 发生这种情况: In [1]: print specific_name in df['name'] Out [1]: False In [2]: print specific_name in df['name'].tolist() Out [2]: True 为什么我必须将其转换为列表?您所做的是一个模棱两可的调用,因为您没有指定在什么条件下它应该计算为True 要筛选出与字符串匹配的行,请
In [1]: print specific_name in df['name']
Out [1]: False
In [2]: print specific_name in df['name'].tolist()
Out [2]: True
为什么我必须将其转换为列表?您所做的是一个模棱两可的调用,因为您没有指定在什么条件下它应该计算为
True
要筛选出与字符串匹配的行,请执行以下操作:
df[df['name'] == specific_name]
或
注意,我必须将字符串放入列表中,因为它必须是一个iterable对象
如果我们尝试您尝试的方法:
In [122]:
'hello' in df['name']
Out[122]:
False
这是因为它是模棱两可的
In [119]:
df[df['name']=='hello']
Out[119]:
name
0 hello
In [121]:
df[df['name'].isin(['hello'])]
Out[121]:
name
0 hello
要在列表中进行匹配,请使用isin:
In [123]:
df = pd.DataFrame({'name':['hello','world','python']})
df
Out[123]:
name
0 hello
1 world
2 python
In [126]:
specifc_names = ['hello', 'world']
df[df['name'].isin(specifc_names)]
Out[126]:
name
0 hello
1 world
我们也可以使用多个布尔条件,但请记住使用数组运算符,并且由于运算符优先级的原因,需要在条件周围放置大括号:
In [127]:
df[(df['name'] == 'hello') | (df['name']=='world')]
Out[127]:
name
0 hello
1 world
您所做的是一个模棱两可的调用,因为您没有指定在什么条件下它应该计算为
True
要筛选出与字符串匹配的行,请执行以下操作:
df[df['name'] == specific_name]
或
注意,我必须将字符串放入列表中,因为它必须是一个iterable对象
如果我们尝试您尝试的方法:
In [122]:
'hello' in df['name']
Out[122]:
False
这是因为它是模棱两可的
In [119]:
df[df['name']=='hello']
Out[119]:
name
0 hello
In [121]:
df[df['name'].isin(['hello'])]
Out[121]:
name
0 hello
要在列表中进行匹配,请使用isin:
In [123]:
df = pd.DataFrame({'name':['hello','world','python']})
df
Out[123]:
name
0 hello
1 world
2 python
In [126]:
specifc_names = ['hello', 'world']
df[df['name'].isin(specifc_names)]
Out[126]:
name
0 hello
1 world
我们也可以使用多个布尔条件,但请记住使用数组运算符,并且由于运算符优先级的原因,需要在条件周围放置大括号:
In [127]:
df[(df['name'] == 'hello') | (df['name']=='world')]
Out[127]:
name
0 hello
1 world
您所做的是一个模棱两可的调用,因为您没有指定在什么条件下它应该计算为
True
要筛选出与字符串匹配的行,请执行以下操作:
df[df['name'] == specific_name]
或
注意,我必须将字符串放入列表中,因为它必须是一个iterable对象
如果我们尝试您尝试的方法:
In [122]:
'hello' in df['name']
Out[122]:
False
这是因为它是模棱两可的
In [119]:
df[df['name']=='hello']
Out[119]:
name
0 hello
In [121]:
df[df['name'].isin(['hello'])]
Out[121]:
name
0 hello
要在列表中进行匹配,请使用isin:
In [123]:
df = pd.DataFrame({'name':['hello','world','python']})
df
Out[123]:
name
0 hello
1 world
2 python
In [126]:
specifc_names = ['hello', 'world']
df[df['name'].isin(specifc_names)]
Out[126]:
name
0 hello
1 world
我们也可以使用多个布尔条件,但请记住使用数组运算符,并且由于运算符优先级的原因,需要在条件周围放置大括号:
In [127]:
df[(df['name'] == 'hello') | (df['name']=='world')]
Out[127]:
name
0 hello
1 world
您所做的是一个模棱两可的调用,因为您没有指定在什么条件下它应该计算为
True
要筛选出与字符串匹配的行,请执行以下操作:
df[df['name'] == specific_name]
或
注意,我必须将字符串放入列表中,因为它必须是一个iterable对象
如果我们尝试您尝试的方法:
In [122]:
'hello' in df['name']
Out[122]:
False
这是因为它是模棱两可的
In [119]:
df[df['name']=='hello']
Out[119]:
name
0 hello
In [121]:
df[df['name'].isin(['hello'])]
Out[121]:
name
0 hello
要在列表中进行匹配,请使用isin:
In [123]:
df = pd.DataFrame({'name':['hello','world','python']})
df
Out[123]:
name
0 hello
1 world
2 python
In [126]:
specifc_names = ['hello', 'world']
df[df['name'].isin(specifc_names)]
Out[126]:
name
0 hello
1 world
我们也可以使用多个布尔条件,但请记住使用数组运算符,并且由于运算符优先级的原因,需要在条件周围放置大括号:
In [127]:
df[(df['name'] == 'hello') | (df['name']=='world')]
Out[127]:
name
0 hello
1 world
您可以使用以下命令:(df.name==“name”).sum()>0
如果名称“name”在列中,则返回True。您可以使用此选项:(df.name==“name”).sum()>0
如果名称“name”在列中,则返回True。您可以使用此选项:(df.name==“name”).sum()>0
如果名称“name”在列中,则返回True。您可以使用此选项:(df.name==“name”).sum()>0
如果名称“name”在列中,它将返回True。因为它是不明确的,如果specfic_name仅在系列中的一行中,这应该是True吗?你应该做
df[df['name']==specfic\u name]
或df['name'])。isin([specific\u name[)
注意我必须将你的字符串转换成一个带有一个字符串的列表太棒了!谢谢。如果我想要所有的行都有一个名为“specific names”的列表中的名称,我该怎么办?因为它是不明确的,如果特定名称仅在系列中的一行中,该怎么办?您应该执行df[df['name']==specfic\u name]
或df['name']。isin([specific\u name[)
注意,我必须将您的字符串转换为一个包含单个字符串的列表太棒了!谢谢。如果我希望列表中的所有行都有一个名为“特定名称”的名称,我该怎么办?因为它是不明确的,如果特定名称在系列中只有一行,这应该是真的吗?您应该执行df[df['name'==specfic\u name]
或df['name'].isin([specific_name[)
注意,我必须将您的字符串转换为具有单个字符串的列表真棒!谢谢。如果我希望列表中的所有行都有一个名为“specific names”的名称,我该怎么办?因为它是不明确的,如果specific_name在系列中只有一行,这应该是真的吗?您应该执行df[df['name']==specfic_name]
或df['name'].isin([specific_name[)
注意,我必须将您的字符串转换为一个包含单个字符串的列表太棒了!谢谢。如果我希望列表中的所有行都有一个名为“specific name”的名称,我该怎么办?