1
내가 분석하고있는 TMDB dataset on Kaggle 일부 항목에 대한 변수 release_date
에서 올해의 존재는 변수 release_year
과 비교했을 때 사십년에 의해 이동된다 : 나는했습니다transform`
# Change to pandas datetime
tmdb_df['release_date'] = pd.to_datetime(tmdb_df['release_date'])
tmdb_df.query('release_date > datetime.date(2015,12,31)')[['release_date', 'release_year']].head()
###
#release_date release_year
#9849 2062-10-04 1962
#9850 2062-12-10 1962
#9851 2062-06-13 1962
#9852 2062-12-25 1962
#9853 2062-10-24 1962
apply
를 사용하여 솔루션을 함께 제공 :
# Check for movies where the year on `release_date` are shifted
# when compared with `release_yer`
import datetime
# Change to pandas datetime
tmdb_df['release_date'] = pd.to_datetime(tmdb_df['release_date'])
def aux_func(row):
"""Fix year"""
if row['release_date'].year != row['release_year']:
return row['release_date'].replace(year=row['release_year'])
else:
return row['release_date']
# Apply fix
tmdb_df['release_date'] = tmdb_df[['release_date', 'release_year']].apply(aux_func, axis=1)
그러나 다른 방법이있는 경우는이 문제를 해결하기 위해 팬더 'transform
를 사용하는 것이 가능한 경우, 또는 궁금했다.
감사합니다, @jezrael을. 내가 이해하는 것을 위해, 그것은 또한 년이 ok 인 입구를 베낄 것이다. 나 맞아? – gabra
예, 정확하게. 나는 마스크가 필요 없다고 생각한다. 아니면 뭔가 빠졌습니까? – jezrael
나는 그것이 좋다고 생각한다. 나는 또한 올해는 같은 항목을 피하려고했지만 그것은 필요하지 않습니다 생각합니다. 'if'로 체크하거나 그냥 덮어 쓰면 같은 결과가 나옵니다. 감사. – gabra