首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从dataframe列到multtindex dataframe

从dataframe列到multtindex dataframe
EN

Stack Overflow用户
提问于 2018-10-31 23:48:20
回答 1查看 58关注 0票数 2

我在Excel表中有以下数据,我想将其作为多索引数据读取:

代码语言:javascript
复制
    Y1     Y1      Y2           Y2
B   H1     H2      H1           H2
1   80     72      79.2         84.744
2   240    216     237.6        254.232
3   40     36      39.6         42.372
4   160    144     158.4        169.488
5   240    216     237.6        254.232
6   0      0       0            0

我将其解读为:

代码语言:javascript
复制
DATA = pd.read_excel('data.xlsx',sheet_name=None)

因为我也在看其他的床单。

问题1:

此数据不作为多索引数据读取。我怎么把它读成多个索引呢?或者我应该把它读成一个数据,然后把它转换成多个索引?作为数据读取的当前结果

代码语言:javascript
复制
DATA['Load']
      Y1 Y1.1     Y2     Y2.1
bus   H1   H2     H1       H2
1     80   72   79.2   84.744
2    240  216  237.6  254.232
3     40   36   39.6   42.372
4    160  144  158.4  169.488
5    240  216  237.6  254.232
6      0    0      0        0

问题2,可能是最基本的问题:

当一个或多个索引位于列侧时,如何处理多个索引?在本例中,我希望通过指定B, Y, H来访问数据。当多个索引都作为索引时,我知道如何使用它们,但是当索引出现在列上时,我不知道它的诀窍。

非常感谢你的帮助:)

PS:

另一张纸可能如下所示:

代码语言:javascript
复制
from    to  x     ratea
1       2   0.4   10
1       4   0.6   80
1       5   0.2   10
2       3   0.2   10
2       4   0.4   10
2       6   0.3   10
3       5   0.2   10
4       6   0.3   10

其中,我将fromto设为set (set_index(['from','to']),以获得多索引数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-31 23:58:05

要向多索引用户读取这样的数据格式,请在pd.read_excel()中使用标头param

代码语言:javascript
复制
df = pd.read_excel('myFile.xlsx', header=[0,1])

    Y1      Y2
B   H1  H2  H1  H2
1   80  72  79.2    84.744
2   240 216 237.6   254.232
3   40  36  39.6    42.372
4   160 144 158.4   169.488
5   240 216 237.6   254.232
6   0   0   0.0 0.000

这意味着您要告诉熊猫您有两个标题行0和1。

在我们谈话之后:

代码语言:javascript
复制
df = pd.read_excel('Book2.xlsx', header=[0,1])
df2 = df.unstack().to_frame()
idx = df2.swaplevel(0,2).swaplevel(1,2).index.set_names(['B', 'Y', 'H'])
df2.set_index(idx, inplace=True)

            0
B   Y   H   
1   Y1  H1  80.000
2   Y1  H1  240.000
3   Y1  H1  40.000
4   Y1  H1  160.000
5   Y1  H1  240.000
6   Y1  H1  0.000
1   Y1  H2  72.000
2   Y1  H2  216.000
3   Y1  H2  36.000
4   Y1  H2  144.000
5   Y1  H2  216.000
6   Y1  H2  0.000
1   Y2  H1  79.200
2   Y2  H1  237.600
3   Y2  H1  39.600
4   Y2  H1  158.400
5   Y2  H1  237.600
6   Y2  H1  0.000
1   Y2  H2  84.744
2   Y2  H2  254.232
3   Y2  H2  42.372
4   Y2  H2  169.488
5   Y2  H2  254.232
6   Y2  H2  0.000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53093409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档