拆卸/"修理和#34;熊猫的多索引

时间:2016-03-31 11:54:08

标签: python pandas dataframe multi-index

我有一个大型数据帧,我从不同的数据帧中得出结论。

它是根据不同数据类型的时间序列构建的,看起来像这样:

location                       locname1                     locname2
region                          region1                      region1   
HZB                              314732                       309906   
LatLon                            xx;yy                        xx;yy 
1940-01-01                          NaN                          NaN   
1940-02-01                          NaN                          NaN   
1940-03-01                          NaN                          NaN   
1940-04-01                          NaN                          NaN   
1940-05-01                          NaN                          NaN   

但是我开始使用的一些数据帧在它们的索引中也有一个datatype行,当我将它们连接起来时,它似乎会丢失。

这显然指向我并不真正理解熊猫多指数,而且我承认,大熊猫对待的索引与我以前完​​全不同,以及我如何直观地对待它们让我感到困惑,但我的理解似乎已经足够了我需要做什么。

大多数情况下,就是这样。当我尝试绘制整个数据帧时,我最终得到KeyError: 'Key length (5) was greater than MultiIndex lexsort depth (0)'

现在,正在查找该错误,我find various"解决方案",这些只会影响我的日期列,但会忽略索引行。

所以,除了最后试图了解多索引之外,还有一种df.get_rid_of_my_multiindex()类型的东西,我可以简单地删除我的多索引,或者只用number 1 2 3 …或类似的东西替换它?

1 个答案:

答案 0 :(得分:0)

我认为一个可能的解决方案是Multiindex的{​​{1}}列:

print df
     location locname1 locname2
       region  region1  region1
          HZB   314732   309906
       LatLon    xx;yy    xx;yy
0  1940-01-01      NaN      NaN
1  1940-02-01      NaN      NaN
2  1940-03-01      NaN      NaN
3  1940-04-01      NaN      NaN
4  1940-05-01      NaN      NaN

df.columns = df.columns.droplevel([1,2,3])
print df
     location  locname1  locname2
0  1940-01-01       NaN       NaN
1  1940-02-01       NaN       NaN
2  1940-03-01       NaN       NaN
3  1940-04-01       NaN       NaN
4  1940-05-01       NaN       NaN

如果您只需重置列名,请使用rangedf.columns = range(df.shape[1]) print df 0 1 2 0 1940-01-01 NaN NaN 1 1940-02-01 NaN NaN 2 1940-03-01 NaN NaN 3 1940-04-01 NaN NaN 4 1940-05-01 NaN NaN

$this->tcpdf->writeHTML('<p style="text-indent: -10px>foo<p>');