如何避免在applymap()中使用NaN?

时间:2019-07-23 13:50:32

标签: python pandas

我试图做一个简单的操作,将数据框转换为标题。

有些NaN会导致错误,所以我想通过仅在str.title()处应用not null来避免它们。

但是我得到invalid syntax

df= df.applymap(lambda x: x.title() if pd.notnull(x))
                                                                    ^
SyntaxError: invalid syntax

另一种尝试:

df= df.applymap(lambda x: x.title() if not pd.isnull(x))

SyntaxError: invalid syntax

4 个答案:

答案 0 :(得分:3)

pandas.Series.str.title

df.stack().str.title().unstack()

numpy.core.defchararray.title

from numpy.core.defchararray import title

title(df.to_numpy().astype(str))

答案 1 :(得分:2)

您可以使用空白字符串填充缺失值:

df = df.fillna("").applymap(lambda x: x.title())

答案 2 :(得分:1)

这是conditional expression,您还必须提供else的值(如果不满足条件)。

尝试一下:

df= df.applymap(lambda x: x.title() if pd.notnull(x) else '')

答案 3 :(得分:1)

运行Series.str.title

可能会更快
df.apply(lambda x:x.str.title())