gpt4 book ai didi

python-2.7 - 如何将一个 Pandas 数据框中的所有小时值与另一个数据框中的年度值相乘?

转载 作者:行者123 更新时间:2023-12-04 17:22:06 25 4
gpt4 key购买 nike

我有以下每小时数据帧 dfA:

Date/Time            Value1    Value2
01.03.2010 00:00:00 60 10
01.03.2010 01:00:00 50 20
01.03.2010 02:00:00 52 30
01.03.2010 03:00:00 49 40
.
.
.
31.12.2013 23:00:00 77 50

我有一个带有年度值的第二个数据框 dfB:
Date/Time   Value1    Value2
31.12.2010 1.5 0.9
31.12.2011 1.6 1.1
31.12.2012 1.7 2.3
31.12.2013 1.3 0.6

我想将 dfA 中的每个小时值与数据框 dfB 中相应年份的因子相乘。

结果应如下所示:
Date/Time            Value1    Value2
01.03.2010 00:00:00 90 9
01.03.2010 01:00:00 75 18
01.03.2010 02:00:00 78 27
01.03.2010 03:00:00 73.5 36
.
.
.
31.12.2013 23:00:00 100.1 30

我一直在尝试 dfC = dfA*dfB[dfA.index.year()]但我收到错误 TypeError: 'numpy.ndarray' object is not callable .
谁能帮我这个?

最佳答案

您可以尝试附加到 df1 的索引df1.index.year ,然后更改索引 df2years然后使用 mul :

print df1
Value1 Value2
Date/Time
2010-01-03 00:00:00 60 10
2010-01-03 01:00:00 50 20
2010-01-03 02:00:00 52 30
2010-01-03 03:00:00 49 40
2013-12-31 23:00:00 77 50

print df2
Value1 Value2
Date/Time
2010-12-31 1.5 0.9
2011-12-31 1.6 1.1
2012-12-31 1.7 2.3
2013-12-31 1.3 0.6

df1 = df1.set_index(df1.index.year, append=True)
df2.index = df2.index.year


print df1
Value1 Value2
Date/Time
2010-01-03 00:00:00 2010 60 10
2010-01-03 01:00:00 2010 50 20
2010-01-03 02:00:00 2010 52 30
2010-01-03 03:00:00 2010 49 40
2013-12-31 23:00:00 2013 77 50

print df2
Value1 Value2
2010 1.5 0.9
2011 1.6 1.1
2012 1.7 2.3
2013 1.3 0.6

print df1.mul(df2, level=1).reset_index(drop=True, level=1)
                     Value1  Value2
Date/Time
2010-01-03 00:00:00 90.0 9
2010-01-03 01:00:00 75.0 18
2010-01-03 02:00:00 78.0 27
2010-01-03 03:00:00 73.5 36
2013-12-31 23:00:00 100.1 30

关于python-2.7 - 如何将一个 Pandas 数据框中的所有小时值与另一个数据框中的年度值相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579455/

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