2016-08-08 2 views
0

Я хотел избегать циклов for в Pandon pandas, но я не делал этого из-за отсутствия экспозиции. Я хотел получить новый столбец на основе существующего столбца, добавив к нему некоторое количество информации.Как прорисовать условную операцию timedelta?

Мой Сценарий:

for each in data['days']: 
    if each<100000: 
     clsdate.append(datetime.now()+ relativedelta(days=each)) 
    else: 
     clsdate.append(datetime.now()) 

data['clsdate'] = clsdate 

данные [ 'дни'] содержит Int номер. Здесь я итерация весь столбец и делает сумму

текущая дата дата + No.of дней = Закрытие

и прилагая значение в списке. Затем добавление списка в фреймворк данных на основе условия if, то есть диапазона значения.

Как избежать этого цикла и добавления одного снимка.

+0

что 'prediction'? – piRSquared

+0

datetime.now(), Отредактированный мой вопрос. –

ответ

0

Вы можете использовать Series.apply:

data['clsdate'] = data['days'].apply(lambda x: datetime.now() + relativedelta(days=x)) 
+0

Обновлен мой вопрос. У меня есть чек. –

3

Вы можете использовать функции даты-времени панд:

df = pd.DataFrame() 
df['days'] = [1, 3, 2, 4] 
pd.to_datetime('now') + pd.to_timedelta(df['days'], unit='days') 
Out: 
0 2016-08-09 07:25:22 
1 2016-08-11 07:25:22 
2 2016-08-10 07:25:22 
3 2016-08-12 07:25:22 
Name: days, dtype: datetime64[ns] 
+0

Обновлен мой вопрос. Сделайте чек сейчас. –

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