किसी अन्य स्तंभ पांडा डेटाफ़्रेम पर आधारित स्तंभ मान निकालें


109

मैं दूसरे चर पर एक चर कंडीशनिंग के मान को निकालने पर अटक जाता हूं। उदाहरण के लिए, निम्नलिखित डेटाफ़्रेम:

A  B
p1 1
p1 2
p3 3
p2 4

मैं Aकब मूल्य प्राप्त कर सकता हूं B=3? हर बार जब मैंने मूल्य निकाला A, मुझे एक वस्तु मिली, न कि एक स्ट्रिंग।


मैं देखता हूं, मुझे item()अंत में जोड़ना चाहिए ।
एंडरसन झू

df.queryऔर pd.evalइस उपयोग के मामले के लिए अच्छा लगता है। pd.eval()फ़ंक्शंस के परिवार, उनकी विशेषताओं और उपयोग के मामलों की जानकारी के लिए, कृपया pd.eval () का उपयोग करके पांडा में डायनेमिक एक्सप्रेशन मूल्यांकन का दौरा करें
cs95

जवाबों:


193

आप locश्रृंखला पाने के लिए उपयोग कर सकते हैं जो आपकी स्थिति को संतुष्ट करता है और फिर ilocपहला तत्व प्राप्त करने के लिए:

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'

24
आपकी सहायता के लिए धन्यवाद। df.loc[df['B'] == 3, 'A'].item()मेरे लिए भी काम करता है।
एंडरसन झू

3
यदि डेटा फ़्रेम में कॉलम 3 में '3' की कई प्रविष्टियाँ हैं, तो वह कौन सी चुनती है?
सुभाष

1
df.loc [df ["Condition_Column"] == 0, ("Column_1", "Column_2," Column_3 "," Column_4 ")] मेरे लिए काम करता है। यह उदाहरण उन चुनिंदा कॉलमों के लिए है। वे ट्यूपल में होने चाहिए।
मुस्तफा उकार

अगर df.loc [df ['B'] == 300, 'A']। iloc [0] का मतलब आउटपुट क्या होगा?
user1999109

.item () को स्पष्ट रूप से हटा दिया गया है और हटा दिया जाएगा। क्या इसे करने का और कोई तरीका है? मुझे कॉलम या डेटाटाइप के नाम में कोई दिलचस्पी नहीं है, जिसे क्वेरी के लिए .loc विधि के साथ भी लौटाया गया है।
दान

39

आप कोशिश कर सकते हैं query, जो कम टाइपिंग है:

df.query('B==3')['A']

प्रश्न दिलचस्प है कि हम इसमें और भी जटिल धाराएँ जोड़ सकते हैं
समीर बैद

1
IMHO, यह सबसे अच्छा जवाब है।
एनएलआर

27

df[df['B']==3]['A'], संभालने df अपने pandas.DataFrame है।


क्या आप कृपया एक लिंक दे सकते हैं जहां यह विधि पांडा के आधिकारिक दस्तावेज में वर्णित है?
vasili111

मेरा मतलब ][हिस्सा है।
vasili111

11

df[df['B']==3]['A'].valuesयदि आप केवल कोष्ठक के बिना आइटम चाहते हैं तो उपयोग करें


क्या आप कृपया एक लिंक दे सकते हैं जहां यह विधि पांडा के आधिकारिक दस्तावेज में वर्णित है? मेरा मतलब ][हिस्सा है।
vasili111

यह परिणाम को वापस करता है []
सिड

[0]मूल्य को एक्सेस करने के लिए आपको अभी भी अंत में डालने की आवश्यकता है ।
rubebop

0
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()

मैंने अपने असाइनमेंट के लिए इस क्लॉज़िंग और निष्कर्षण कार्यों पर भी काम किया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.