【问题标题】:creating additional levels of headers (pandas) in python在 python 中创建额外级别的标题(熊猫)
【发布时间】:2018-01-09 11:03:27
【问题描述】:

我是编程新手,但目前正在使用数据框。我正在尝试将当前的数据框堆叠到特定的“设计”中。目前我正在处理更大的文件,有很多数据。但是我不能根据我的需要来堆叠()我的数据,而且形状一团糟。我需要帮助如何定义多索引,创建更多级别。

希望你能帮帮我,我在贴一个例子

我从我的代码中得到什么(在 stack() 之前):

    Exports      NaN      NaN      NaN      Net Exports       NaN      NaN  
0      Total   Sweden   Norway  Germany        Total   Sweden   Norway    
1     1032.8      358    239.7    435.1        636.8    274.1      9.7   
2     1198.8    556.4    211.8    430.6        846.3    522.6     -1.1   `

使用堆栈():

出口总额 南瑞典 NaN 挪威 NaN 德国 净出口总额 NaN 瑞典 NaN 挪威 NaN 德国 纳瓦时 1 出口 1032.8 南 358 南 239.7 南 435.1 净出口 636.8 南 274.1 南 9.7 南353

提前感谢您帮助我

【问题讨论】:

  • 如何将文件读入数据框?来自excel?
  • 是的,我愿意。但是我必须删除行和列,因此要访问我感兴趣的表,通常您只需添加 r=pd.read_excel(header=[0,1])。但是,由于我已将原始数据帧修改为较小的,因此我不能这样做

标签: python python-2.7 pandas dataframe multi-index


【解决方案1】:

我认为你需要:

print (r.head())
    Unnamed: 18 Unnamed: 19 Unnamed: 20 Unnamed: 21   Unnamed: 22 Unnamed: 23  \
0       Exports         NaN         NaN         NaN  Net Exports          NaN   
2         Total      Sweden      Norway     Germany         Total      Sweden   
189      1032.8         358       239.7       435.1         636.8       274.1   
190      1198.8       556.4       211.8       430.6         846.3       522.6   
191       982.7       159.3       166.2       657.2         276.3      -156.8   

    Unnamed: 24 Unnamed: 25     Unit:  
0           NaN         NaN       NaN  
2        Norway     Germany       GWh  
189         9.7         353   January  
190        -1.1       324.8  February  
191      -105.9         539     March  

#create index from column Unit 
r = r.set_index('Unit:')
#create Multiindex from first and second row
#NaNs in frst row was replace by ffill - forward filling fillna()
r.columns= pd.MultiIndex.from_arrays([r.iloc[0].ffill(), r.iloc[1]], names=(None, None))
#remove first and second row
r = r.iloc[2:]

print (r.head())
         Exports                       Net Exports                       
           Total Sweden Norway Germany        Total Sweden Norway Germany
Unit:                                                                    
January   1032.8    358  239.7   435.1        636.8  274.1    9.7     353
February  1198.8  556.4  211.8   430.6        846.3  522.6   -1.1   324.8
March      982.7  159.3  166.2   657.2        276.3 -156.8 -105.9     539
April      962.3   22.1     62   878.2       -268.6 -741.3 -352.9   825.6
May        951.2   13.5   15.9   921.8       -511.5 -885.2 -496.4   870.1

print (r.stack().head(10))
                 Exports Net Exports 
Unit:                                
January  Germany   435.1          353
         Norway    239.7          9.7
         Sweden      358        274.1
         Total    1032.8        636.8
February Germany   430.6        324.8
         Norway    211.8         -1.1
         Sweden    556.4        522.6
         Total    1198.8        846.3
March    Germany   657.2          539
         Norway    166.2       -105.9

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 2019-04-12
    • 2020-10-18
    • 1970-01-01
    • 2017-03-03
    • 2022-01-13
    • 2021-05-31
    • 2021-03-04
    • 2023-03-22
    相关资源
    最近更新 更多