使用中间on的两个系列替换值

2024-03-28 16:52:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我是熊猫新手,试着用这样的三个系列

第一个X:

DATE
2015-10-10 00:00:00      0.0
2015-10-10 01:00:00    290.0
2015-10-10 02:00:00    225.0
2015-10-10 03:00:00      4.0
2015-10-10 04:00:00      2.0
Name: X, dtype: bool

第二个S:

DATE
2015-10-10 00:00:00     True
2015-10-10 01:00:00    False
2015-10-10 02:00:00    False
2015-10-10 03:00:00     True
2015-10-10 04:00:00     True
Name: S, dtype: bool

第三名平均分:

DATE
2015-10-10 00:00:00      0.000000
2015-10-10 01:00:00    145.000000
2015-10-10 02:00:00    171.666667
2015-10-10 03:00:00    128.750000
2015-10-10 04:00:00    103.000000
Name: average, dtype: bool

我想做的是: 如果X中的值在S中为真,则用相应的平均索引值替换X中的值。 做这件事的最佳和更有效的方法是什么


Tags: 方法namefalsetruedateboolaveragedtype
1条回答
网友
1楼 · 发布于 2024-03-28 16:52:40

您可以使用^{}传入Series来测试:

In [231]:
Average.where(S==True, X)

Out[231]:
DATE
2015-10-10 00:00:00      0.00
2015-10-10 01:00:00    290.00
2015-10-10 02:00:00    225.00
2015-10-10 03:00:00    128.75
2015-10-10 04:00:00    103.00
Name: val, dtype: float64

相关问题 更多 >