I have a dataframe where each row has a range of years. This is the code to build it.
original = pd.DataFrame({'City': ['Paris','Rome','New York', 'Tokyo'], 'Color': ['red', 'orange', 'blue', 'purple'], 'Years': ['2010-2012', '2019-2020', '2015-2018', '2002-2003']})
The table looks something like this.
City Color Years
Paris red 2010-2012
Rome orange 2019-2020
New York blue 2015-2018
Tokyo purple 2002-2003
I want to create a new row for each year in the range of 'Years'. The dataframe should look like this.
City Color Years
Paris red 2010
Paris red 2011
...
New York blue 2018
Tokyo purple 2002
Tokyo purple 2003
This is the code I'm using right now. I'm trying to add a new row for each year, but it only returns an empty dataframe, and I'm not sure why.
df_empty = pd.DataFrame({'City': [], 'Color': [], 'Years': []})
for index, row in original.iterrows():
dates = [int(s) for s in row['Years'].split("-") if s.isdigit()]
for i in range(dates[0],dates[1] + 1):
newrow = row
newrow.append(pd.Series([str(i)]))
df_empty.add(newrow)