Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #data
  2. d = {'year': {0: 2016,
  3. 1: 2016,
  4. 2: 2016,
  5. 3: 2016,
  6. 4: 2017,
  7. 5: 2017,
  8. 6: 2017,
  9. 7: 2017,
  10. 8: 2018,
  11. 9: 2018,
  12. 10: 2018},
  13. 'id': {0: 1015.0,
  14. 1: 1016.0,
  15. 2: nan,
  16. 3: nan,
  17. 4: 1035.0,
  18. 5: 1036.0,
  19. 6: nan,
  20. 7: nan,
  21. 8: 1005.0,
  22. 9: nan,
  23. 10: nan}}
  24.  
  25. # list of years
  26. years = [2016,2017,2018]
  27.  
  28. # create dataframe
  29. df = pd.DataFrame(d)
  30.  
  31. # create list that I will append data frames too
  32. l = []
  33.  
  34. for x in years:
  35. # create a dataframe for each year
  36. df1 = df[df['year']==x].copy()
  37. # fill nans with max value plus 1
  38. df1['id'] = df1['id'].fillna(lambda x: x['id'].max() + 1)
  39. # add dataframe to list
  40. l.append(df1)
  41. # concat list of dataframes
  42. final = pd.concat(l)
  43.  
  44. df1['id'] = df1['id'].apply(lambda x: x['id'].fillna(x['id'].max() +1))
  45.  
  46. TypeError: 'float' object is not subscriptable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement