लागू करता है मैं पांडों में पूरे DataFrame
पर लागू फ़ंक्शन में एक पंक्ति के सूचकांक तक पहुंचने का प्रयास कर रहा हूं। मैं कुछ इस तरह है:पांडा में एक पंक्ति का सूचकांक प्राप्त करना
df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])
>>> df
a b c
0 1 2 3
1 4 5 6
और मुझे लगता है कि किसी पंक्ति
def rowFunc(row):
return row['a'] + row['b'] * row['c']
साथ तत्वों का उपयोग एक समारोह को परिभाषित करेंगे मैं यह इतना की तरह लागू कर सकते हैं:
df['d'] = df.apply(rowFunc, axis=1)
>>> df
a b c d
0 1 2 3 7
1 4 5 6 34
बहुत बढ़िया! अब क्या होगा यदि मैं अपने फ़ंक्शन में इंडेक्स को शामिल करना चाहता हूं? d
जोड़ने से पहले DataFrame
में दिए गए किसी भी पंक्ति की अनुक्रमणिका Index([u'a', u'b', u'c', u'd'], dtype='object')
होगी, लेकिन मुझे 0 और 1 चाहिए। इसलिए मैं केवल row.index
तक नहीं पहुंच सकता।
मैं जानता हूँ कि मैं मेज, जहां मैं सूचकांक की दुकान में एक अस्थायी स्तंभ बना सकते हैं, लेकिन मैं "हूँ सोच अगर यह कहीं पंक्ति वस्तु में sotred है।
: वहाँ एक कारण है कि आप 'apply' उपयोग करने की आवश्यकता है? फ्रेम पर वेक्टरकृत ओप करने से यह बहुत धीमी है। (कभी-कभी * कुछ करने का सबसे आसान तरीका * लागू होता है, और प्रदर्शन विचार अक्सर अतिरंजित होते हैं, लेकिन आपके विशेष उदाहरण के लिए यह उपयोग करने के लिए आसान * नहीं * है।) – DSM
@DSM वास्तविकता में मैं प्रत्येक पंक्ति के लिए अन्य ऑब्जेक्ट कन्स्ट्रक्टर को कॉल कर रहा हूं विभिन्न पंक्ति तत्वों का उपयोग कर। मैं सिर्फ प्रश्न को स्पष्ट करने के लिए एक साथ एक न्यूनतम उदाहरण रखना चाहता था। – Mike
'लागू करें()' वह Droid नहीं है जिसे आप ढूंढ रहे हैं; इसके बजाय 'df.iterrows()' का उपयोग करें। मेरा जवाब देखें यह एक XY समस्या – smci