如何从数据帧中删除多索引级别等于NaN(无值)的列

时间:2018-10-18 08:46:27

标签: python pandas

我正在尝试从具有Multiindex的数据框中删除列,因为某些列的级别等于NaN(空)。我尝试使用dropna(),但它仅适用于我假设的行: enter image description here

数据帧称为“测试” 当我这样做时,test.dropna()无法正常工作。我有15个ID级:

names=['ID14', 'ID13', 'ID12', 'ID11', 'ID10', 'ID9', 'ID8', 'ID7', 'ID6', 'ID5', 'ID4', 'ID3', 'ID2', 'ID1', 'ID0'])

您有什么建议如何指示删除Multiindex(所有15个级别)中具有空值的整个列以及相应的行吗?

先谢谢您! (我是初学者)

2 个答案:

答案 0 :(得分:2)

尝试重置索引,然后再次重新索引,如下所示:

old_idx = df.index.names
my_new_df = df.reset_index().dropna().set_index(old_idx)

那应该能够解决它,希望它能有所帮助。

答案 1 :(得分:0)

谢谢大家!目前,除了找到转置数据框并删除索引中为NaN的行外,我没有更好的方法了……但它行得通:

test_transposed = test.T
old_idx = test_transposed.index.names
my_new_df = test_transposed.reset_index().dropna().set_index(old_idx)
new_dataset = my_new_df.T