我需要根据以下索引创建一个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
在此问题上的任何帮助将不胜感激。
答案 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