有谁能解释这段代码是如何工作的?大熊猫在python中

时间:2018-04-02 07:32:37

标签: pandas

`
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中是如何工作的。

非常感谢。!

1 个答案:

答案 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')