我想测试列C
中的单元格是否为空白,如果是,用列中的值填充它A
,如果A
是NaN
,用B
. 列C
可能有一些空白单元格,如下所示:
df
:
A B C
0 xyz NaN 12.03.2010
1 abc NaN 01.10.2009
2 NaN 14.11.2010
3 02.10.2010 NaN
C
似乎有一些空白单元格,但当我用df.iloc[2, 2] == None
或测试时pd.isnull(df.iloc[2, 2])
,都返回False
. 为什么会这样?我们如何测试它是否真的是空白?
replace()
空字符串,nan
然后链接一对fillna()
:
df.C = df.C.replace(r'^\s*$', np.nan, regex=True).fillna(df.A).fillna(df.B)
# A B C
# 0 xyz NaN 12.03.2010
# 1 abc NaN 01.10.2009
# 2 NaN 14.11.2010 14.11.2010
# 3 02.10.2010 NaN 02.10.2010
或者开始str.strip()
使替换更简单:
df.C = df.C.str.strip().replace('', np.nan).fillna(df.A).fillna(df.B)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句