Возможно ли использовать df.apply для получения атрибута, а не для запуска функции? Я хочу получить год с даты, чтобы выполнить группу. Например ..pandas применяются к атрибуту вместо функции
import pandas as pd
import datetime
import numpy as np
df = pd.DataFrame({'date': [datetime.datetime(2010,1,1)+datetime.timedelta(days=i*15)
for i in range(0,100)]})
Это работает ..
df['year'] = [d.year for d in df['date']]
Это также работает ..
df['year'] = df['date'].apply(lambda x: x.year)
Но это не ..
df['year'] = df['date'].apply(year)
Нор делает это ..
df['year'] = df['date'].year
Каков наиболее эффективный способ сделать это?
Используйте '.dt' аксессор при доступе на серии объекта -' ДФ [ «дата»] dt.year'.. –
Помимо вышеуказанного комментария, почему это 'df ['year'] = df ['date']. Apply (year)' work? 'year' должен быть определенным объектом или методом для применения к каждой строке, и именно поэтому вам не понадобилось' lambda' – EdChum
@NickilMaveli. Это конкретное время? Если бы у меня был другой объект non datetime, к которому я хотел получить доступ к атрибуту, использую ли я лямбду или есть ярлык? – ashishsingal