2016-03-25 70 views
5

我已¶ 讀DataFrame.applypandas DataFrame,如何將函數應用於特定列?

DataFrame.apply的文檔(FUNC,軸= 0,廣播=假,生=假,減少=無,ARGS =(),** kwds)應用功能沿着DataFrame的輸入軸。

那麼,如何將函數應用於特定列?

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 

我想addOne每一個價值df['A'],並非所有列。我怎麼用DataFrame.apply來做到這一點。

感謝您的幫助!

回答

7

答案是,

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

,也許你會更好地瞭解mapdifference的,applymapapply

但是如果你堅持要使用apply,你可以嘗試像下面這樣。

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

df.apply(addOne, axis=1) 
3

一種簡單的方法來解決這個問題,

df['A']=df['A'].apply(lambda x:x+1) 
相關問題