2017-01-27 3 views
0

Предположим, у меня есть дата-рамка, у которой есть amnog others, два столбца, date1 и date2. Date1 is null когда дата2 нет, и наоборот.Сочетание двух столбцов в dataframe

Я хочу создать столбец с именем «дата».

Я сделал это:

def setDate(s1, s2): 
    if not isinstance(s1, str): 
     return s2 
    else: 
     return s1 

Тогда, я хочу сделать что-то вроде:

data["DATE"] = data[["DATE1", "DATE2"]].apply(lambda x,y : setDate(x,y)) 

но я получаю:

TypeError: ("<lambda>() missing 1 required positional argument: 'y'", 'occurred at index DATE1') 

Как использовать применять на dataframe делать то, что я хочу?

+0

какая ошибка? мы не можем читать в вашем уме. Всегда ставьте под сомнение FULL сообщение об ошибке (Traceback). – furas

+0

попробуйте с помощью lambda x: print (x) '- возможно, он отправит оба элемента как один кортеж/список – furas

ответ

2

попробовать:

data['DATE'] = pd.to_datetime(data.DATE1.fillna(data.DATE2)) 

или если вы хотите сохранить dtypes путь они

data['DATE'] = data.DATE1.fillna(data.DATE2) 
Смежные вопросы