`
for column in list(df.columns[df.isnull().sum() > 0]):
mean = df[column].mean()
df[column].fillna(mean,inplace=True)
df.info()`
我不明白第一行代码,我的意思是,... list ()...这是否意味着括号中的所有内容都将返回列表< / STRONG>? 它应该写成:
list = df.columns[df.isnull().sum() > 0]
for column in list:
....
这里,Python如何知道 df.columns [df.isnull()。sum()&gt;中的内容。 0] ,
对我来说,我会写,
sum = 0
for each in df.columns:
if each is null:
sum += 1 (which is wrong obviously, but you know what i mean)
...
我是Python的初学者,我以前用C语言编写,所以很混乱,希望有人可以帮我解释使用括号来列出列表的方式,它在Python中是如何工作的。
非常感谢。!
答案 0 :(得分:0)
list
此处将Index
(包含至少一个NaN
的列名称)转换为list
:
df = pd.DataFrame({'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,np.nan,5,7,1,0],
'E':[5,np.nan,np.nan,9,2,4],
'F':list('aaabbb')})
print (df)
A B C D E F
0 a 4 7 1.0 5.0 a
1 b 5 8 NaN NaN a
2 c 4 9 5.0 NaN a
3 d 5 4 7.0 9.0 b
4 e 5 2 1.0 2.0 b
5 f 4 3 0.0 4.0 b
a = list(df.columns[df.isnull().sum() > 0])
print (a)
['D', 'E']
print (df.isnull().sum())
A 0
B 0
C 0
D 1
E 2
F 0
dtype: int64
print (df.isnull().sum() > 0)
A False
B False
C False
D True
E True
F False
dtype: bool
print (df.columns[df.isnull().sum() > 0])
Index(['D', 'E'], dtype='object')