python - 将时间序列转入面板...python

标签 python dataframe time-series panel

我有一个数据框,其中包含从 1932 年 2 月 29 日到 2018 年 7 月 31 日每月观察的 25 个投资组合(ME1_BM1、ME1_BM2 等)的时间序列。前四个观察结果如下所示:

                 ME1_BM1     ME1_BM2  ...
Date
1932-02-29       2.11875     1.28388
1932-03-31       2.18567     1.24275
...

日期列设置为索引。我需要为其他事情准备数据,因此我需要将数据转换为如下所示:

ME1_BM1    1932-02-29    2.11875
           1932-03-31    2.18567
           ...
ME1_BM2    1932-02-29    1.28388
           1932-03-31    1.24275
           ...

无法使其工作。我尝试堆叠数据框,但随后我将日期作为索引,将投资组合作为第二个“变量”。由于我需要指定太多变量,所以我对枢纽一无所获......

请问有人知道怎么做吗?

亲切的问候,杰斯珀。

最佳答案

我认为你需要unstack对于带有 MultiIndexSeries:

s = df.unstack()
print (s)
         Date      
ME1_BM1  1932-02-29    2.11875
         1932-03-31    2.18567
ME1_BM2  1932-02-29    1.28388
         1932-03-31    1.24275
dtype: float64

如果想要 3 列 DataFrame 添加 reset_index :

df1 = df.unstack().reset_index()
df1.columns = ['portfolio','date','val']
print (df1)
  portfolio        date      val
0   ME1_BM1  1932-02-29  2.11875
1   ME1_BM1  1932-03-31  2.18567
2   ME1_BM2  1932-02-29  1.28388
3   ME1_BM2  1932-03-31  1.24275

关于python - 将时间序列转入面板...python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52888293/

相关文章:

python - 使用 python 的 eval() 与 ast.literal_eval()

r - 如何从数据框中的列内容中删除 '.'?

python - 按列标题排列 DataFrame 列

r - R : How can I access each simulated path using tsbootstrap? 中的时间序列自举

python - 客户端机器上的 MySQLdb 可以连接到服务器机器上的数据库吗?

python - mysql-python 排序规则问题 : how to force unicode datatype?

Python C/C++ 包装器与纯 C/C++ 性能

pandas - 如何计算具有多列整数的数据帧中行的重复项

sql - 计算由特定列分区的先前时间范围内的行

r - 我如何在 R 中区分面板数据