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

时间:2016-06-16 09:46:41

标签: python pandas time-series series

我是Pandas的新手,试图像这样使用三个系列......

第一个X:

while (true) {

            for (Input input : inputs) {

                try {

                        input.readSomething();

                } catch (EndOfStreamException e) {

                    closePort(input.getPort()); 
                    break;
                }
            }

        }

第二个S:

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

第三个平均值:

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

我想做的是: 如果在S中为True,则用X中的索引替换X中的值和相应的值。 有什么最好,最有效的方法呢?

1 个答案:

答案 0 :(得分:2)

您可以使用where传递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