[['user_1',
'user_2',
'user_8',
None,
None],
['ben',
'karl',
None,
None]]
我尝试删除缺失值
for element in df:
element=[x for x in element if x is not None]
此代码保留所有内容
答案 0 :(得分:1)
my_list= [['user_1',
'user_2',
'user_8',
None,
None],
['ben',
'karl',
None,
None]]
print [ [ elt for elt in a_list if elt is not None ] for a_list in my_list ]
[['user_1','user_2','user_8'],['ben','karl']]
答案 1 :(得分:1)
代码的问题在于
行element=[x for x in element if x is not None]
创建新的筛选列表并将其绑定到名称element
,其中替换名称为element
的旧列表对象。但我们可以使用切片分配来改变该列表:
df = [
[
'user_1',
'user_2',
'user_8',
None,
None,
],
[
'ben',
'karl',
None,
None,
]
]
# Remove the `None` values
for element in df:
element[:] = [x for x in element if x is not None]
for row in df:
print(row)
<强>输出强>
['user_1', 'user_2', 'user_8']
['ben', 'karl']
答案 2 :(得分:1)
for element in df:
element[:]=[x for x in element if x is not None]
出:
[['user_1', 'user_2', 'user_8'], ['ben', 'karl']]
答案 3 :(得分:0)
重新分配element
不会改变列表,因为element
是一个单独的变量。
通过一个小的更改,您可以使用嵌套的理解生成一个新的外部列表,如下所示:
df = [[x for x in element if x is not None] for element in df]