2013-10-29 18 views
5

Tôi có một đối tượng Loạt (hãy gọi số này MySeries) có chứa một danh sách các số nguyên.Tương đương với từ khóa "trong" hoặc truy vấn phụ trong gấu trúc

Tôi cũng có một khung dữ liệu riêng (giả sử MyDataFrame), bao gồm một cột/trường có tên là MyField.

Tôi muốn chọn tất cả các bản ghi từ MyDataFrame trong đó giá trị trong MyField là trong MySeries

SQL tương đương sẽ là:

Select * from MyDataFrame 
where MyField in 
    (select * from MySeries) 

bất cứ ai có thể đề nghị cách tốt nhất để làm điều này?

Cảm ơn rất nhiều vì đã giúp đỡ.

Trả lời

4

bạn có thể sử dụng chức năng isin():

>>> df = pd.DataFrame({'A':[1,2,3,4,5], 'B':list('ABCDE')}) 
>>> f = pd.Series([1,2]) 
>>> df[df['A'].isin(f)] 
    A B 
0 1 A 
1 2 B 

vậy, đầu tiên bạn nhận được fiter Series:

>>> df['A'].isin(f) 
0  True 
1  True 
2 False 
3 False 
4 False 

Và sau đó sử dụng nó để lọc DataFrame bạn

Các vấn đề liên quan