相关疑难解决方法(0)

将级别添加到pandas MultiIndex

我有一个DataFrame,在一些分组后创建了一个MultiIndex:

import numpy as np
import pandas as p
from numpy.random import randn

df = p.DataFrame({
    'A' : ['a1', 'a1', 'a2', 'a3']
  , 'B' : ['b1', 'b2', 'b3', 'b4']
  , 'Vals' : randn(4)
}).groupby(['A', 'B']).sum()

df

Output>            Vals
Output> A  B           
Output> a1 b1 -1.632460
Output>    b2  0.596027
Output> a2 b3 -0.619130
Output> a3 b4 -0.002009
Run Code Online (Sandbox Code Playgroud)

如何将一个级别添加到MultiIndex,以便将其转换为:

Output>                       Vals
Output> FirstLevel A  B           
Output> Foo        a1 b1 -1.632460
Output>               b2  0.596027
Output>            a2 b3 -0.619130
Output>            a3 b4 -0.002009
Run Code Online (Sandbox Code Playgroud)

python pandas

76
推荐指数
5
解决办法
5万
查看次数

在新的多索引级别下连接Pandas列

给出一个数据帧字典,如:

dict = {'ABC': df1, 'XYZ' : df2}   # of any length...
Run Code Online (Sandbox Code Playgroud)

其中每个数据框具有相同的列和相似的索引,例如:

data           Open     High      Low    Close   Volume
Date                                                   
2002-01-17  0.18077  0.18800  0.16993  0.18439  1720833
2002-01-18  0.18439  0.21331  0.18077  0.19523  2027866
2002-01-21  0.19523  0.20970  0.19162  0.20608   771149
Run Code Online (Sandbox Code Playgroud)

将所有数据帧合并为一个的最简单方法是什么,使用多索引,如:

symbol         ABC                                       XYZ
data           Open     High      Low    Close   Volume  Open ...
Date                                                   
2002-01-17  0.18077  0.18800  0.16993  0.18439  1720833  ...
2002-01-18  0.18439  0.21331  0.18077  0.19523  2027866  ...
2002-01-21  0.19523  0.20970  0.19162  0.20608   771149  ...
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些方法 - 例如,对于每个数据帧,用多索引替换列.from_product(['ABC', columns])然后连接axis=1,但没有成功.

python multi-index pandas

46
推荐指数
2
解决办法
2万
查看次数

标签 统计

pandas ×2

python ×2

multi-index ×1