Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #data
- d = {'year': {0: 2016,
- 1: 2016,
- 2: 2016,
- 3: 2016,
- 4: 2017,
- 5: 2017,
- 6: 2017,
- 7: 2017,
- 8: 2018,
- 9: 2018,
- 10: 2018},
- 'id': {0: 1015.0,
- 1: 1016.0,
- 2: nan,
- 3: nan,
- 4: 1035.0,
- 5: 1036.0,
- 6: nan,
- 7: nan,
- 8: 1005.0,
- 9: nan,
- 10: nan}}
- # list of years
- years = [2016,2017,2018]
- # create dataframe
- df = pd.DataFrame(d)
- # create list that I will append data frames too
- l = []
- for x in years:
- # create a dataframe for each year
- df1 = df[df['year']==x].copy()
- # fill nans with max value plus 1
- df1['id'] = df1['id'].fillna(lambda x: x['id'].max() + 1)
- # add dataframe to list
- l.append(df1)
- # concat list of dataframes
- final = pd.concat(l)
- df1['id'] = df1['id'].apply(lambda x: x['id'].fillna(x['id'].max() +1))
- TypeError: 'float' object is not subscriptable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement