Сначала объедините столбцы Year
и Month
, затем используйте pd.to_datetime
, чтобы преобразовать этот объединенный столбец в ряд pandas datetime, затем используйте Series.dt.strftime
для преобразования этот ряд datetime в необходимом формате:
df['Date'] = pd.to_datetime(
df['Year'].astype(str) + df['Month'], format='%Y%B').dt.strftime('%Y-%m')
ИЛИ, также можно использовать словарь mappings
для сопоставления столбца Month
с помощью Series.map
:
mappings = {'January': '01', 'February': '02', 'March': '03', 'April': '04', 'May': '05', 'June': '06',
'July': '07', 'August': '08', 'September': '09', 'Octomber': '10', 'November': '11', 'December': '12'}
df['Date'] = df['Year'].astype(str) + '-' + df['Month'].map(mappings)
# print(df)
Year Month Partisan Conflict Date
0 1981 January 68.944808 1981-01
1 1981 February 64.907109 1981-02
2 1981 March 79.058476 1981-03
3 1981 April 69.324041 1981-04
4 1981 May 88.194466 1981-05