Pandas new column based in sum a column from another pandas

y4ekin9u  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(108)

我有两个dataframe,第一个是:

unit    year
0     1    2020
1     2    2021
2     3    2022

和第二:

unit    observations
0     1               0
1     2               1
2     2               2
3     2               3
4     2               4
5     3               5

我需要在第一个dataframe中添加一个列,作为第二个dataframe中的单元的观察结果的总和,我在最后有这样的东西

unit    year   observations
0     1    2020              0
1     2    2021             10
2     3    2022              5

我试着df_1.iterrows并使用基于从第一个df到sum的单位的查询,它起作用了,但我说的是一个df,大约有4百万行,这个解决方案需要几天时间。有人有更快的解决方案吗?

mfuanj7w

mfuanj7w1#

在第二个DataFrame中使用Series.map和聚合sum

df1['observations'] = df1['unit'].map(df2.groupby('unit')['observations'].sum())
print (df1)
   unit  year  observations
0     1  2020             0
1     2  2021            10
2     3  2022             5

相关问题