2016-11-29 3 views
1

У меня есть дата-рамка, и я хочу добавить новый столбец на основе некоторой обработки в существующем столбце.добавить новый столбец на основе значений из другого столбца, используя функцию pandas python

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']}) 

Теперь я хочу добавить новый столбец в dataframe, передав значения в столбце a. ДФ [е] = [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

тип возврата из функции является список строк, и это является сложной функцией. Я просто использовал дополнение, чтобы упростить пример. Могу ли я использовать его без использования астипа. – AMisra

Смежные вопросы