Python 根据系列值选择DataFrame数据库

Python 根据系列值选择DataFrame数据库,python,pandas,indexing,boolean,series,Python,Pandas,Indexing,Boolean,Series,我有一个熊猫的数据帧,当我在数据帧上执行操作时,我会得到一个序列。我如何使用该序列只选择匹配的记录 现在,我正在将该列附加到数据帧上,并对该数据帧执行查询,然后删除该列。我真的不喜欢这个解决方案,所以我希望我能得到一个更好的解决方案 data = [[1,2,3], [1,3,4], [3,4,5]] columns = ['a', 'b', 'c'] df = pd.DataFrame(data, columns=columns) series = df.myoperation() df['m

我有一个熊猫的数据帧,当我在数据帧上执行操作时,我会得到一个序列。我如何使用该序列只选择匹配的记录

现在,我正在将该列附加到数据帧上,并对该数据帧执行查询,然后删除该列。我真的不喜欢这个解决方案,所以我希望我能得到一个更好的解决方案

data = [[1,2,3], [1,3,4], [3,4,5]]
columns = ['a', 'b', 'c']
df = pd.DataFrame(data, columns=columns)
series = df.myoperation()
df['myoperation'] = series
res = df[df['myoperation'] == True] 
del res['myoperation']
系列
对象将产生1-1匹配,因此索引项1将匹配数据框对象中的项1

上面是我的黑客代码来完成它,但我担心当dataframe有很多列或者比这个简单的例子有更多的数据时,它会很慢


谢谢

如果
系列
是布尔的
系列
,索引与
df
相同,长度与
df
相同,我想您可以使用它-它被称为:

它始终适用于
布尔值
列表和numpy数组,只有长度必须与
df
相同:

L = [True, False, True]
res = df[L]
print (res)
   a  b  c
0  1  2  3
2  3  4  5

L = [True, False, True]
res = df[L]
print (res)
   a  b  c
0  1  2  3
2  3  4  5
arr = np.array([True, False, True])
res = df[arr]
print (res)
   a  b  c
0  1  2  3
2  3  4  5