我有大量的电影数据集。 我正在使用Pandas包。
在变量“预算”(是一种对象类型)中,通常有“?” charachter。
现在我要删除所有包含“?”的电影在预算变量中。
最后,我想将预算变量转换为整数,并使用变量“quality”运行回归。 Picture of the data set 我尝试了一种方法,但它没有成功。 而“?”在df.budget中:df.remove(?)
答案 0 :(得分:3)
比较由!=
创建的不等于(numpy array
)values
或首先将所有值转换为string
并添加all
以进行全部检查{{ 1}}每行的值,最后按boolean indexing
过滤:
True
<强>详情:
df = pd.DataFrame({'A':list('abcde?'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[4,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')})
print (df)
A B C D E F
0 a 4 7 4 5 a
1 b 5 8 3 3 a
2 c 4 9 5 6 a
3 d 5 4 7 9 b
4 e 5 2 1 2 b
5 ? 4 3 0 4 b
df = df[(df.values != '?').all(axis=1)]
#alternative
#df = df[(df.astype(str) != '?').all(axis=1)]
print (df)
A B C D E F
0 a 4 7 4 5 a
1 b 5 8 3 3 a
2 c 4 9 5 6 a
3 d 5 4 7 9 b
4 e 5 2 1 2 b
编辑:
print (df.values != '?')
[[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[False True True True True True]]
print ((df.values != '?').all(axis=1))
[ True True True True True False]