根据给定索引和某些索引项的值创建pd.Series

时间:2019-08-18 14:01:58

标签: python pandas series

我需要根据以下索引创建一个pd.Series:

[2018-01-01, 2018-02-01, 2018-03-01, 2018-04-01, 2018-05-01, 2018-06-01, 2018-07-01, 2018-08-01, 2018-09-01, 2018-10-01, 2018-11-01, 2018-12-01, 2019-01-01]

另一个pd.Series:

date
2018-02-01    1
2018-03-01    4
2018-05-01    3
2019-01-01    2

在索引的日期匹配的情况下,我需要将输出pd.Series索引设为给定的index,并将数据作为先前显示的系列中的值,以防索引的日期匹配,否则为0。 >

在这种情况下,输出pd.Series将是:

date
2018-01-01      0
2018-02-01      1
2018-03-01      4
2018-04-01      0
2018-05-01      3
2018-06-01      0
2018-07-01      0
2018-08-01      0
2018-09-01      0
2018-10-01      0
2018-11-01      0
2018-12-01      0
2019-01-01      2

在此问题上的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我将从您的问题中创建一个可执行的示例数据集:

index = ['2018-01-01', '2018-02-01', '2018-03-01', '2018-04-01', 
         '2018-05-01', '2018-06-01', '2018-07-01', '2018-08-01', 
         '2018-09-01', '2018-10-01', '2018-11-01', '2018-12-01', '2019-01-01']
ser = pd.Series(data=[1, 4, 3, 2], 
                index=['2018-02-01', '2018-03-01', '2018-05-01', '2019-01-01'])

现在,您只需要用所需的索引重新编制系列索引,并将填充值设置为零:

new_ser = ser.reindex(index, fill_value=0)

这将产生您想要的输出:

2018-01-01    0
2018-02-01    1
2018-03-01    4
2018-04-01    0
2018-05-01    3
2018-06-01    0
2018-07-01    0
2018-08-01    0
2018-09-01    0
2018-10-01    0
2018-11-01    0
2018-12-01    0
2019-01-01    2