Python 3.x 数据帧筛选器如果值存在,则返回所有
如果某个值与else匹配,我想筛选数据帧并返回每行。当我尝试在代码中使用.isin进行筛选时,它会返回空数据帧Python 3.x 数据帧筛选器如果值存在,则返回所有,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,如果某个值与else匹配,我想筛选数据帧并返回每行。当我尝试在代码中使用.isin进行筛选时,它会返回空数据帧 My DataFrame:df a_column b_column 1 3 2 4 3 5 4 9 如果我试着用这样的代码过滤 df=df[df['b_column'].isin([7])] df=df[df['b_column']==([7])] 它返回空数据帧, 如果我用7过滤b_
My DataFrame:df
a_column b_column
1 3
2 4
3 5
4 9
如果我试着用这样的代码过滤
df=df[df['b_column'].isin([7])]
df=df[df['b_column']==([7])]
它返回空数据帧,
如果我用7过滤b_列,我想要的输出是
My DataFrame:df
a_column b_column
1 3
2 4
3 5
4 9
提前感谢。您可以通过
|
为逐位链接标量布尔值,或者使用if-else
语句为测试是否至少有一个True
链接:
谢谢它对我很有效。同样,如果没有匹配项,则不返回整个数据帧,而是返回字符串“未找到匹配项”。我如何才能做到这一点?@Venugopalsrinivasan-如果m.any()其他“未找到匹配项”,则使用out=df[m]
m = df['b_column'].isin([7])
b = False if m.any() else True
df1 = df[m | b]
print (df1)
a_column b_column
0 1 3
1 2 4
2 3 5
3 4 9
m = df['b_column'].isin([3,4])
b = False if m.any() else True
df1 = df[m | b]
print (df1)
a_column b_column
0 1 3
1 2 4