两个 Pandas 系列替换值使用中间值
Two Pandas Series replacement values using intermediate one
我是 Pandas 的新手,正在尝试使用这样的三个系列...
第一个 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
第二个小号:
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
我想做的是:
如果在 S 中为 True,则将 X 中的值替换为 Average 中相应索引的值。
最好和更有效的方法是什么?
您可以使用 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
我是 Pandas 的新手,正在尝试使用这样的三个系列...
第一个 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
第二个小号:
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
我想做的是: 如果在 S 中为 True,则将 X 中的值替换为 Average 中相应索引的值。 最好和更有效的方法是什么?
您可以使用 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