私はパンダにとても慣れていません(つまり、2日未満)。ただし、2つの列をif/else条件で組み合わせるための正しい構文を理解できないようです。
実際、私は「zip」を使用してそれを行う1つの方法を見つけました。これは私が達成したいことですが、パンダでこれを行うためのより効率的な方法があるようです。
完全を期すために、物事を明確にするために行う前処理をいくつか含めます。
records_data = pd.read_csv(open('records.csv'))
## pull out a year from column using a regex
source_years = records_data['source'].map(extract_year_from_source)
## this is what I want to do more efficiently (if its possible)
records_data['year'] = [s if s else y for (s,y) in zip(source_years, records_data['year'])]