Python 熊猫不掉柱子
嗨,我尝试过删除基于布尔数组的列,但出于某种奇怪的原因,熊猫似乎根本没有删除列 布尔数组是and(376,)。它只包含真值和假值Python 熊猫不掉柱子,python,arrays,pandas,numpy,Python,Arrays,Pandas,Numpy,嗨,我尝试过删除基于布尔数组的列,但出于某种奇怪的原因,熊猫似乎根本没有删除列 布尔数组是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中的列数 dtest是(4209376)和p
for x in range(0,len(analysis)-1):
if analysis[x] == False:
col = dtest.columns[x]
dtest.drop(dtest.columns[x],1)
这是我删除列的代码,本质上分析数组的长度是dtest中的列数
dtest是(4209376)和pandas.core.frame.DataFrame
我已经试过调试,它确实检测到了分析中的错误,并且能够准确地打印出col变量,但由于某种原因它不会删除列
非常感谢您的帮助!谢谢:)您需要重新分配输出:
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
mask只选择列,就像另一个答案一样。您需要重新分配输出:
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
mask只选择列。IIUC您不需要循环
:
dtest = dtest.loc[:, analysis]
演示:
IIUC您不需要
循环
:
dtest = dtest.loc[:, analysis]
演示:
@kimpster,很高兴它有帮助:)@kimpster,很高兴它有帮助:)