2015-06-11 5 views
23

कहो मैं निम्नलिखित DataFrameएक पांडा DataFrame से एक मूल्य और नहीं सूचकांक और ऑब्जेक्ट प्रकार

 
Letter Number 
A   1 
B   2 
C   3 
D   4 

निम्नलिखित में से कौन कोड के माध्यम से प्राप्त किया जा सकता

import pandas as pd 

letters=pd.Series(('A', 'B', 'C', 'D')) 
numbers=pd.Series((1, 2, 3, 4)) 
keys=('Letters', 'Numbers') 
df=pd.concat((letters, numbers), axis=1, keys=keys) 

अब मैं चाहते हैं पाने के लिए कैसे स्तंभ पत्र से मूल्य सी प्राप्त करने के लिए।

कमांड लाइन

df[df.Letters=='C'].Letters 

 
2 C 
Name: Letters, dtype: object 

मेरा प्रश्न वापस आ जाएगी है: मैं केवल मूल्य सी कैसे मिलता है और नहीं पूरे दो लाइन उत्पादन कर सकते हैं?

बहुत बहुत धन्यवाद।
एडुआर्डो

+0

एक असंबंधित नोट पर, आपके डेटाफ्रेम को नियंत्रित करने का एक अच्छा तरीका है: '' 'pd.DataFrame ({'पत्र': अक्षर, 'संख्याएं': संख्या})' ' – JoeCondron

+0

जो, आपकी टिप्पणी के लिए धन्यवाद। यह मेरे कोड में सुधार होगा। – Eduardo

उत्तर

39
df[df.Letters=='C'].Letters.item() 

यह सूचकांक/श्रृंखला है कि चयन से लौटे में पहला तत्व देता है। इस मामले में, मान हमेशा पहला तत्व होता है।

संपादित करें:

या आप एक loc() चलाने के लिए और पहले तत्व कि जिस तरह से उपयोग कर सकते हैं। यह छोटा था और जिस तरह से मैंने इसे अतीत में लागू किया है।

+0

धन्यवाद, यह वही था जो मैं ढूंढ रहा था। – Eduardo

10

उपयोग एक एनपी सरणी के रूप में मान और फिर [0] का उपयोग पहले मूल्य प्राप्त करने के लिए values विशेषता:

In [4]: 
df.loc[df.Letters=='C','Letters'].values[0] 

Out[4]: 
'C' 

संपादित

मैं व्यक्तिगत रूप से सबस्क्रिप्ट ऑपरेटर्स का उपयोग कॉलम का उपयोग करना पसंद करते हैं:

df.loc[df['Letters'] == 'C', 'Letters'].values[0] 

यह मुद्दों जहां स्तंभ नाम स्थान या डैश - हो सकता से बचा जाता है, जिसका अर्थ है कि तक पहुँचने का उपयोग कर .

+1

आपके उदाहरण एड के लिए धन्यवाद। मैं स्थानीय के कई प्रयोगों का अध्ययन करूंगा। – Eduardo

+0

मैं व्यक्तिगत रूप से कॉलम तक पहुंचने के लिए '.' का उपयोग नहीं करता क्योंकि यह हमेशा उदाहरण के लिए काम नहीं करेगा यदि कॉलम नाम संख्यात्मक मान से शुरू होता है या कॉलम नाम में कोई स्थान जैसे गैर अल्फा वर्ण हैं, इसलिए मैं हमेशा' डीएफ ['col_name'] ' – EdChum

+0

मैं देखता हूं। Thats क्यों हर जगह मैं देखता हूं, मुझे हमेशा '.' नोटेशन के बजाय' df ['col_name'] नोटेशन मिला। एक बार फिर धन्यवाद। – Eduardo

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