gpt4 book ai didi

python - 使用日期操作数据框

转载 作者:行者123 更新时间:2023-11-30 22:37:12 26 4
gpt4 key购买 nike

我有2个数据框如下:

df1:

       id       Grade         Date
1 78 15 2016-05-23
2 99 12 2015-08-01

df2:

                 rate
2015-01-01 1.22
2015-02-01 1.12
...
2015-05-01 1.05
2017-01-01 1.33

我想将 df1 中的成绩与同月 df2 中的费率相乘。因此,对于 2016-05-23,它是在第 05 个月,因为我会将其乘以 1.05。

有什么建议吗?谢谢您的帮助

最佳答案

如果将 df2 索引设置为每月 PeriodIndex:

In [11]: df2.index = df2.index.to_period("M")

In [12]: df2
Out[12]:
rate
2015-01 1.22
2015-02 1.12
2016-05 1.32
2015-08 1.23

现在,您可以使用 df2.loc 高效地提取费率:

In [13]: df2.loc[df1.Date.dt.to_period("M")]["rate"]
Out[13]:
2016-05 1.32
2015-08 1.23
Freq: M, Name: rate, dtype: float64

现在,您可以乘以:

In [14]: df2.loc[df1.Date.dt.to_period("M")]["rate"].values * df1["Grade"]
Out[14]:
1 19.80
2 14.76
Name: Grade, dtype: float64


In [21]: df1["NormedGrade"] = df2.loc[df1.Date.dt.to_period("M")]["rate"].values * df1["Grade"]

In [22]: df1
Out[22]:
id Grade Date Normed Grade
1 78 15 2016-05-23 19.80
2 99 12 2015-08-01 14.76

关于python - 使用日期操作数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43949089/

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