2016-03-25 11 views
5

मैं ¶ DataFrame.applyपांडा डेटाफ्रेम, किसी विशिष्ट कॉलम पर फ़ंक्शन कैसे लागू करें?

DataFrame.apply की डॉक्स (समारोह, अक्ष = 0, प्रसारण = झूठी, कच्चे = झूठी, को कम = कोई नहीं, आर्ग =(), ** kwds) पढ़ा है समारोह लागू होता है डेटाफ्रेम के इनपुट अक्ष के साथ।

तो, मैं एक विशिष्ट कॉलम पर फ़ंक्शन कैसे लागू कर सकता हूं?

In [1]: import pandas as pd 
In [2]: data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} 
In [3]: df = pd.DataFrame(data) 
In [4]: df 
Out[4]: 
    A B C 
0 1 4 7 
1 2 5 8 
2 3 6 9 
In [5]: def addOne(v): 
...:  v += 1 
...:  return v 
...: 
In [6]: df.apply(addOne, axis=1) 
Out[6]: 
    A B C 
0 2 5 8 
1 3 6 9 
2 4 7 10 

मैं df['A'] में हर मूल्य को addOne करने के लिए, नहीं सभी स्तंभों चाहते हैं। मैं DataFrame.apply के साथ ऐसा कैसे कर सकता हूं।

मदद के लिए धन्यवाद!

उत्तर

7

जवाब है,

df['A'] = df['A'].map(addOne) 

और हो सकता है आप बेहतर होगा, apply के बारे में differencemap की, applymap पता करने के लिए।

लेकिन अगर आप apply उपयोग करने के लिए जोर दिया, जैसा कि आप नीचे की तरह की कोशिश कर सकते।

def addOne(v): 
    v['A'] += 1 
    return v 

df.apply(addOne, axis=1) 
3

हल करने के लिए समस्या है एक आसान तरीका,

df['A']=df['A'].apply(lambda x:x+1) 
संबंधित मुद्दे