我有 2 个数据框,一个每月采样,另一个每年采样。
如果是同一年,我想将每月数据框中的列值乘以每年数据框中的列值。我怎样才能做到这一点?
df1 = pd.DataFrame({'column1' : [1, 1, 1, 2, 2]}, index=['2018 - 01', '2018 - 02', '2018 - 03', '2019 - 01', '2019 - 02'])
df1
column1
2018 - 01 1
2018 - 02 1
2018 - 03 1
2019 - 01 2
2019 - 02 2
df2 = pd.DataFrame({'columnX' : [2, 3]}, index=['2018', '2019'])
df2
columnX
2018 2
2019 3
预期结果:
column1
2018 - 01 2
2018 - 02 2
2018 - 03 2
2019 - 01 6
2019 - 02 6
最佳答案
您可以创建多个索引,然后执行 mul
(multiple)
df1['mul']=df1.set_index(df1.index.str[:4],append=True).mul(df2.columnX,level=1,axis=0).values
df1
Out[123]:
column1 mul
2018 - 01 1 2
2018 - 02 1 2
2018 - 03 1 2
2019 - 01 2 6
2019 - 02 2 6
关于python - Pandas:如果是同一年,则将一列乘以另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49944893/