pandas合并多个级别的时间序列

时间:2018-06-09 11:21:38

标签: python pandas time-series

我正在尝试重新构建不同变量的pandas中的时间序列(当前第一次使用NaN的列)。由于在这里查看代码打印并不容易,所以我附上了一张图片。

目标是将不同变量的时间序列对齐在同一行而不是目前的单独时间序列。

任何可以帮助完成此任务的人都可以帮忙吗?

print out of my data frame

2 个答案:

答案 0 :(得分:1)

我认为需要unstack喜欢:

df = s.unstack(0)

如果列:

df = df['col'].unstack(0)

答案 1 :(得分:0)

date列上的简单合并应该是您正在寻找的内容。左侧合并左侧的较长(可能nan - 值)时间序列:

import pandas as pd
import numpy as np
from datetime import datetime

ts1 = pd.DataFrame({'date': pd.date_range(start=datetime.now().date(), periods=100),
                    'var1': np.repeat(np.nan, 50).tolist() + np.linspace(0, 100, 50).tolist()})
ts2 = pd.DataFrame({'date':pd.date_range(start=datetime.now().date(), periods=50),
                    'var2': np.linspace(0, 100, 50).tolist()})
merged = ts1.merge(ts2, on='date', how='left')

<强>输出

         date        var1       var2
0  2018-06-09         NaN   0.000000
1  2018-06-10         NaN   2.040816
2  2018-06-11         NaN   4.081633
3  2018-06-12         NaN   6.122449
4  2018-06-13         NaN   8.163265
5  2018-06-14         NaN  10.204082
...
96 2018-09-13   93.877551        NaN
97 2018-09-14   95.918367        NaN
98 2018-09-15   97.959184        NaN
99 2018-09-16  100.000000        NaN