我遇到了 pandas 问题。
所以我有一个 pd.Series,serie_1
,如下所示:
timestamp
2010-05-01 2
2010-06-01 1
2010-07-01 2
2010-08-01 3
2010-09-01 0
2010-10-01 5
我还有另一个 pd.Series,serie_2
,如下所示:
timestamp
2010-02-01 0
2010-03-01 0
2010-04-01 0
2010-05-01 1
2010-06-01 1
2010-07-01 2
2010-08-01 3
2010-09-01 0
2010-10-01 2
请注意,serie_2
于 2010-02-01
开始,而 serie_1
于 2010-05-01
开始>。我需要从 serie_1
和 serie_2
创建一个 pd.Series,将其命名为 output_serie
,以便 output_serie.index
code> 为 serie_2.index
,并且 output_serie.values
等于 serie_1.values/serie_2.values
。
输出如下所示:
timestamp
2010-02-01 0
2010-03-01 0
2010-04-01 0
2010-05-01 2
2010-06-01 1
2010-07-01 1
2010-08-01 1
2010-09-01 0
2010-10-01 2
在 serie_1
和 serie_2
中,0 值时间戳相同(例如,在 2010-09-01
)。
唯一的问题是 serie_2
从 2010-02-01
开始,我需要在最终的 pd.Series 中保留这些月份的 0 值。
对此问题的任何帮助将不胜感激。
最佳答案
In [53]: serie_1.divide(serie_2).fillna(0).astype(int)
Out[53]:
2010-02-01 0
2010-03-01 0
2010-04-01 0
2010-05-01 2
2010-06-01 1
2010-07-01 1
2010-08-01 1
2010-09-01 0
2010-10-01 2
dtype: int64
<小时/>
这是我使用的设置:
import pandas as pd
serie_1 = pd.Series([2, 1, 2, 3, 0, 5], index=pd.DatetimeIndex(["2010-05-01", "2010-06-01", "2010-07-01", "2010-08-01", "2010-09-01", "2010-10-01", ]), )
serie_2 = pd.Series([0, 0, 0, 1, 1, 2, 3, 0, 2], index=pd.DatetimeIndex(["2010-02-01", "2010-03-01", "2010-04-01", "2010-05-01", "2010-06-01", "2010-07-01", "2010-08-01", "2010-09-01", "2010-10-01", ]), )
关于python - 从两个给定的 pd.Series 创建 pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543430/