gpt4 book ai didi

python - 如果是同一年,则将一列乘以另一列

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:50 26 4
gpt4 key购买 nike

我有 2 个数据框,一个按月采样,另一个按日期时间索引按年采样。

如果是同一年,我想将月度数据框中列的值乘以年度数据框中列的值。我该怎么做?

非常感谢您的帮助,

df = pd.DataFrame({'column1' : [1, 1, 1, 2, 2]}, index=['2018-01-01', '2018-01-02', '2018-01-03', '2019-01-03', '2019-01-02'])
df.index= pd.to_datetime(df.index)

df
column1
2018-01-01 1
2018-01-02 1
2018-01-03 1
2019-01-03 2
2019-01-02 2

df2 = pd.DataFrame({'columnX' : [2, 3]}, index=['2018', '2019'])
df2.index= pd.to_datetime(df2.index)

df2

columnX
2018-01-01 2
2019-01-01 3

预期结果:

df
Column1 Results
2018-01-01 1 2
2018-01-02 1 2
2018-01-03 1 2
2019-01-03 2 6
2019-01-02 2 6

最佳答案

In [57]: df = (df.assign(y=df.index.year)
...: .merge(df2.assign(y=df2.index.year), how='left')
...: .eval("Results = column1 * columnX")
...: .drop(['columnX','y'],1)
...: .set_index(df.index))
...:
...:

In [58]: df
Out[58]:
column1 Results
2018-01-01 1 2
2018-01-02 1 2
2018-01-03 1 2
2019-01-03 2 6
2019-01-02 2 6

关于python - 如果是同一年,则将一列乘以另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com