基于将行与另一个数据帧分开来创建新的数据帧

时间:2020-03-23 22:50:52

标签: pandas dataframe

我有一个看起来像这样的数据框:

            A B C D E
Date  
1999-01-01  1 2 3 4 5
1999-01-02  1 2 3 4 5 
1999-01-03  1 2 3 4 5 
1999-01-04  1 2 3 4 5
1999-01-05  1 2 3 4 5

我正在尝试根据日期将某些行一分为二,并将输出作为新的数据框

我尝试过的是这个

a = "1999-01-01"
b = "1999-01-03"
c = "1999-01-05"

Obs_1 = df.loc[b] / df.loc[a] - 1
Obs_2 = df.loc[c] / df.loc[b] - 1

df_1 = pd.concat([Obs_1, Obs_2], axis = 1)
df_1

但是,它只是给我整个NaN,即:

            A    B   C   D   E   A    B   C   D   E
Date  
1999-01-01  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
1999-01-03  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
1999-01-05  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 

我对concat()中只有两件事时为什么返回三行感到有点困惑...可能相关,我也不明白为什么它返回NaN而不是b /的结果a和c / b。

作为补充问题,当我检查Obs_1时,它会返回

             A    B   C   D   E
Date  
1999-01-01  NaN NaN NaN NaN NaN 
1999-01-03  NaN NaN NaN NaN NaN 

而不是使用b / a的序列的预期结果

请有人指引我正确的方向吗?

非常感谢

0 个答案:

没有答案