2012-08-23 20 views
316

संभव डुप्लिकेट:
how to filter the dataframe rows of pandas by “within”/“in”?एक पांडा dataframe से पंक्तियां चुनने के लिए मानों की सूची का उपयोग करें

चलें कहते हैं कि मैं निम्नलिखित पांडा dataframe है:

df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) 
df 

    A B 
0 5 1 
1 6 2 
2 3 3 
3 4 5 

मैं एक विशिष्ट मान के आधार पर सबसेट कर सकते हैं:

x = df[df['A'] == 3] 
x 

    A B 
2 3 3 

लेकिन मैं मूल्यों की सूची के आधार पर कैसे सबसेट कर सकता हूं? - कुछ इस तरह:

list_of_values = [3,6] 

y = df[df['A'] in list_of_values] 
+0

यह वास्तव में डुप्लिकेट है? क्या इसका उपयोग किए बिना सबसेट प्राप्त करने का कोई तरीका है? – Chogg

उत्तर

486

यह वास्तव में, how to filter the dataframe rows of pandas by "within"/"in"? का डुप्लिकेट है अनुवाद करना आपकी उदाहरण के जवाब देता है:

In [5]: df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) 

In [6]: df 
Out[6]: 
    A B 
0 5 1 
1 6 2 
2 3 3 
3 4 5 

In [7]: df[df['A'].isin([3, 6])] 
Out[7]: 
    A B 
1 6 2 
2 3 3 
+2

सूची के क्रम में आप इन मानों को कैसे वापस कर देंगे? उदाहरण के लिए, 'list_of_values' के मान 3 तो 6 हैं लेकिन फ्रेम 6 के साथ वापस आ गया है। मैं एक साधारण प्रकार के बारे में बात नहीं कर रहा हूं, बल्कि हम सूची में मूल्यों के क्रम में विशेष रूप से कैसे लौट सकते हैं। –

+0

यह बूलियन इंडेक्सिंग का एक उदाहरण था जो इंडेक्स से ऑर्डर को रोकता है, अधिक जानकारी के लिए http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-with-isin देखें। चयन की आवश्यकता के बाद एक प्रकार है। –

+0

इससे मुझे मदद मिली http://stackoverflow.com/a/29108799/5629831 –

संबंधित मुद्दे