Python 3.x 如何将数据帧中的None字段修复为false
上面的数据帧包含布尔值和无值 如果0-5列中的任何一列为false,我想从更新的数据帧中忽略它们。考虑到“无”表示真实值,所以我的结果应该是Python 3.x 如何将数据帧中的None字段修复为false,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,上面的数据帧包含布尔值和无值 如果0-5列中的任何一列为false,我想从更新的数据帧中忽略它们。考虑到“无”表示真实值,所以我的结果应该是 Id 0 1 2 3 4 5 0 apple True None None None None None 1 orange False None True None None None 2 banana True None None True No
Id 0 1 2 3 4 5
0 apple True None None None None None
1 orange False None True None None None
2 banana True None None True None None
3 guava False None None None True None
4 leeche None True None None None None
我无法理解如何在多个列上获得组合筛选器。使用:
Id
0 apple
2 banana
4 leeche
如果需要检查所有列,但不首先检查:
cols = ['0','1','2','3','4','5']
df = df.loc[df[cols].ne('False').all(1), ['Id']]
#if False is boolean
#df = df.loc[df[cols].ne(False).all(1), ['Id']]
print (df)
Id
0 apple
2 banana
4 leeche
说明:
首先按列名称选择列:
df = df.loc[df.iloc[:, 1:].ne('False').all(1), ['Id']]
然后通过以下方式检查是否不相等False
:
并通过以下方式测试每行的所有True
s:
最后一次过滤方式是使用Id
和[]
选择一列DataFrame
:
print(df[cols].ne('False').all(1))
0 True
1 False
2 True
3 False
4 True
dtype: bool
你能解释一下发生了什么事吗here@sbasu-编辑答案。
#if boolean False
print(df[cols].ne(False))
#if string False
#print(df[cols].ne('False'))
0 1 2 3 4 5
0 True True True True True True
1 False True True True True True
2 True True True True True True
3 False True True True True True
4 True True True True True True
print(df[cols].ne('False').all(1))
0 True
1 False
2 True
3 False
4 True
dtype: bool
print(df[df[cols].ne('False').all(1)])
Id 0 1 2 3 4 5
0 apple True None None None None None
2 banana True None None True None None
4 leeche None True None None None None
print(df.loc[df[cols].ne('False').all(1), ['Id']])
Id
0 apple
2 banana
4 leeche