2016-11-29 9 views
1

データフレームがあり、既存の列の処理に基づいて新しい列を追加したいとします。関数を使用して他の列の値に基づいて新しい列を追加します。

import pandas as pd 
def func_processcol(l): 
    processedl=l+1 
    return processedl 
df = pd.DataFrame({'a':['l1','l2','l3','l4','l5','l6'], 
         'b':['1','2','2','1','2','2']}) 

ここで、列aに値を渡すことによって、新しい列をデータフレームに追加します。 DF [E] = [L1 + 1、...]

答えて

3

は、私はあなたがapplyが必要だと思う:

def func_processcol(l): 
    #changed `1` to string for correct output 
    processedl=l + '1' 
    return processedl 
df = pd.DataFrame({'a':['l1','l2','l3','l4','l5','l6'], 
         'b':['1','2','2','1','2','2']}) 

df['c'] = df.b.apply(func_processcol)    
print (df)      
    a b c 
0 l1 1 11 
1 l2 2 21 
2 l3 2 21 
3 l4 1 11 
4 l5 2 21 
5 l6 2 21 
+0

関数からの戻り値の型が文字列のリストであり、それは複雑な関数です。私は例を単純化するために追加を使用しました。私はそれをastypeを使わずに使うことができますか? – AMisra

関連する問題