我正在尝试从具有Multiindex的数据框中删除列,因为某些列的级别等于NaN
(空)。我尝试使用dropna(),但它仅适用于我假设的行:
数据帧称为“测试”
当我这样做时,test.dropna()
无法正常工作。我有15个ID级:
names=['ID14', 'ID13', 'ID12', 'ID11', 'ID10', 'ID9', 'ID8', 'ID7', 'ID6', 'ID5', 'ID4', 'ID3', 'ID2', 'ID1', 'ID0'])
您有什么建议如何指示删除Multiindex(所有15个级别)中具有空值的整个列以及相应的行吗?
先谢谢您! (我是初学者)
答案 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