pandas中的groupby在组合具有NaN [duplicate]的列时出错

2ic8powd  于 2023-09-29  发布在  其他
关注(0)|答案(1)|浏览(243)

此问题已在此处有答案

Change column type in pandas(16个回答)
5天前关闭。
我有下面的 Dataframe ,我想合并三列["Area (ha)", "Yield (tn per ha)", "Production (tn)"],这样就不存在NaN:

  1. Country Crop Season Year Area Yield Production
  2. 0 Argentina maize 1 2000 3088715
  3. 22 Argentina maize 1 2000 3088715
  4. 44 Argentina maize 1 2000 3088715
  5. 66 Argentina maize 1 2000 3088715
  6. 88 Argentina maize 1 2000 3088715
  7. 110 Argentina maize 1 2000 3088715
  8. 132 Argentina maize 1 2000 3088715
  9. 154 Argentina maize 1 2000 3088715
  10. 176 Argentina maize 1 2000 3088715
  11. 198 Argentina maize 1 2000 3088715
  12. 220 Argentina maize 1 2000 3088715
  13. 242 Argentina maize 1 2000 3088715
  14. 264 Argentina maize 1 2000 3088715
  15. 8754 Argentina maize 1 2000 5.433
  16. 8776 Argentina maize 1 2000 5.433
  17. 8798 Argentina maize 1 2000 5.433
  18. 8820 Argentina maize 1 2000 5.433
  19. 8842 Argentina maize 1 2000 5.433
  20. 8864 Argentina maize 1 2000 5.433
  21. 8886 Argentina maize 1 2000 5.433
  22. 8908 Argentina maize 1 2000 5.433
  23. 8930 Argentina maize 1 2000 5.433
  24. 8952 Argentina maize 1 2000 5.433
  25. 8974 Argentina maize 1 2000 5.433
  26. 8996 Argentina maize 1 2000 5.433
  27. 9018 Argentina maize 1 2000 5.433
  28. 17508 Argentina maize 1 2000 16780650
  29. 17530 Argentina maize 1 2000 16780650
  30. 17552 Argentina maize 1 2000 16780650
  31. 17574 Argentina maize 1 2000 16780650
  32. 17596 Argentina maize 1 2000 16780650
  33. 17618 Argentina maize 1 2000 16780650
  34. 17640 Argentina maize 1 2000 16780650
  35. 17662 Argentina maize 1 2000 16780650
  36. 17684 Argentina maize 1 2000 16780650
  37. 17706 Argentina maize 1 2000 16780650
  38. 17728 Argentina maize 1 2000 16780650
  39. 17750 Argentina maize 1 2000 16780650
  40. 17772 Argentina maize 1 2000 16780650

以下是我尝试的:df.groupby(["Country", "Crop", "Season", "Year"], dropna=False).mean().reset_index()
然而,我得到这个错误:*** TypeError: agg function failed [how->mean,dtype->object]
我该怎么修复它?预期输出为:

  1. Country Crop Season Year Area Yield Production
  2. Argentina maize 1 2000 3088715 5.433 5.433
dddzy1tm

dddzy1tm1#

在分组前填充nan值

  1. df["Area"].fillna(0, inplace=True)
  2. df["Production"].fillna(0, inplace=True)

相关问题