Pandas不掉柱子

2024-04-30 01:50:10 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我试着删除基于布尔数组的列,但出于某种奇怪的原因,pandas似乎根本没有删除列。在

布尔数组是and(376,)。它只包含真值和假值。在

for x in range(0,len(analysis)-1): 
    if analysis[x] == False:
        col =  dtest.columns[x]
        dtest.drop(dtest.columns[x],1)

这是我删除列的代码,本质上分析数组的长度就是dtest中的列数。在

数据测试是(4209376)&;熊猫.核心.框架.数据帧

我试过调试,它确实能检测出分析中的错误,也能准确地打印出col变量,但由于某种原因它不会删除列。在

非常感谢您的帮助!谢谢:)


Tags: columnsandinpandasforlenifrange
2条回答

你不需要loop

dtest = dtest.loc[:, analysis]

演示:

^{pr2}$

您需要将输出分配回:

cols = []
for x in range(0,len(analysis)): 
    if analysis[x] == False:
        col =  dtest.columns[x]
        cols.append(col)

dtest = dtest.drop(cols,1)
print (dtest)
   0  2
0  1  3

但更好的方法是像在另一个答案中一样,通过True掩码只选择列。在

相关问题 更多 >