通过在现有数据帧中传递一系列日期时间来创建新的数据帧

时间:2019-01-12 17:53:54

标签: python pandas datetime

我有一个名为“ testset”的熊猫数据框,它看起来像这样(请注意,date列是索引,并且已经转换为datetime了):

Date                Adj Close
1950-01-03 00:00:00 16.66
1950-01-04 00:00:00 16.85
1950-01-05 00:00:00 16.93
1950-01-06 00:00:00 16.98
1950-01-09 00:00:00 17.08
1950-01-10 00:00:00 17.03
1950-01-11 00:00:00 17.09
1950-01-12 00:00:00 16.76
...

我有一系列日期(再次转换为日期时间),称为“ triggerdates”,如下所示:

Index   Trigger Date
65      1950-10-04 00:00:00
124     1951-01-02 00:00:00
165     1951-03-02 00:00:00
208     1951-05-03 00:00:00
943     1954-04-12 00:00:00
997     1954-06-29 00:00:00
1053    1954-09-17 00:00:00
1089    1954-11-09 00:00:00

我想将第二个数据集中的日期集传递给第一个数据集,以创建一个新的数据框,以便预期结果如下所示:

Date                  Adj Close
1950-10-04 00:00:00   18.64
1951-01-02 00:00:00   19.23
1951-03-02 00:00:00   18.21
1951-05-03 00:00:00   19.21
1954-04-12 00:00:00   20.07
1954-06-29 00:00:00   17.23
1954-09-17 00:00:00   16.12
1954-11-09 00:00:00   20.44
...

当我尝试通过以下操作时:

df = np.where(triggerdates, testset['Adj Close'], np.nan)

我收到以下错误:

ValueError: operands could not be broadcast together with shapes (91,) (17369,) () 

一如既往,我们将不胜感激

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找reindex

testset=testset.reindex(triggerdates)