用fillna()一次替换多列

时间:2020-10-09 13:45:29

标签: python pandas

我的dataFrame有两列Null值

import numpy as np
import pandas as pd
ddd = pd.DataFrame({'a' : [1,2,3],'b' : [np.nan,np.nan,np.nan],'c' : [np.nan,np.nan,np.nan] })

我想用列a的值替换列b和c。我正在这样做

ddd[['b','c']]= ddd.fillna(ddd.a)

我收到错误ValueError: Columns must be same length as key

当我这样做时,值仍然保持为NAN

ddd.iloc[:,1:] = ddd.fillna(ddd.a)

只有当我这样单独地工作时,它才有效

ddd.b = ddd.fillna(ddd.a)
ddd.c = ddd.fillna(ddd.a)

我的预期输出是

   a    b    c
0  1  1.0  1.0
1  2  2.0  2.0
2  3  3.0  3.0

无论如何要单行工作,我的数据集中有500列以上

1 个答案:

答案 0 :(得分:1)

这将在所有列上进行迭代,但第一个列将进行迭代:

for column in df.columns[1:]:
    ddd[column]= ddd['a']
相关问题