从给定的两个 pd.Series 创建 pandas 系列
Creating pandas series from two given pd.Series
我有一个 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
就是 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", ]), )
我有一个 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
就是 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.
非常感谢对此问题的任何帮助。
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", ]), )