首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Dropna By Column by level in multiindex和swap for non-NA值

Dropna By Column by level in multiindex和swap for non-NA值
EN

Stack Overflow用户
提问于 2019-06-26 04:42:13
回答 2查看 338关注 0票数 1

我正在尝试做一些转换,有点卡住了。希望有人能帮我解决这个问题。

代码语言:javascript
复制
l0    a         b         c         d       e         f      
l1    1     2   1   2     1     2   1   2   1   2     1     2
0   NaN   NaN NaN NaN  93.4   NaN NaN NaN NaN NaN  19.0  28.9
1   NaN   9.0 NaN NaN  43.5  32.0 NaN NaN NaN NaN   NaN   3.4
2   NaN   5.0 NaN NaN  93.3  83.6 NaN NaN NaN NaN  59.5  28.2
3   NaN  19.6 NaN NaN  72.8  47.4 NaN NaN NaN NaN  31.5  67.2
4   NaN   NaN NaN NaN   NaN  62.5 NaN NaN NaN NaN   NaN   1.8

我有一个数据帧(如上所示),正如你所看到的,有多个'NaN‘和一个多索引列。沿着level =0选择列(即l0)

如果全部都是NaN,我想删除整个列。因此,在本例中,列的

代码语言:javascript
复制
l0 = ['b', 'd', 'e'] # drop-cols

应从数据帧中删除

代码语言:javascript
复制
l0    a           c           f      
l1    1     2     1     2     1     2
0   NaN   NaN  93.4   NaN  19.0  28.9
1   NaN   9.0  43.5  32.0   NaN   3.4
2   NaN   5.0  93.3  83.6  59.5  28.2
3   NaN  19.6  72.8  47.4  31.5  67.2
4   NaN   NaN   NaN  62.5   NaN   1.8

  1. 这将给我数据帧(如上所示)。如果之前的所有条目都为空(或者在相邻的cols之间交换值),那么我希望沿着行交换slide __值。例如,查看row.

= 0 ,即first index

代码语言:javascript
复制
l0    a           c           f      
l1    1     2     1     2     1     2
0   NaN   NaN  93.4   NaN  19.0  28.9

因为,col - a中的所有值都是空的。我想先滑动/交换值b/w col - acol - c。然后对right-side中的列执行相同的操作,即用col-f替换col-c中的条目,并使col-f中的所有条目成为NaN中的所有条目

代码语言:javascript
复制
l0    a           c           f      
l1    1     2     1     2     1     2
0   93.4   NaN  19.0  28.9  NaN   NaN

这实际上是为了节省处理和存储信息的内存,因为互连标签['a', 'b', 'c'...]不会改变数据的含义。

编辑:(2)的任何想法

我已经设法用下面的代码解决了(1):

代码语言:javascript
复制
for c in df.columns.get_level_values(0).unique():
  if df[c].isna().all().all():
    df = df.drop(columns=[c])
df
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761731

复制
相关文章

相似问题

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