Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何避免applymap()中的NAN?_Python_Pandas - Fatal编程技术网

Python 如何避免applymap()中的NAN?

Python 如何避免applymap()中的NAN?,python,pandas,Python,Pandas,我正在尝试做一个简单的操作,将数据帧转换为标题库 有些NAN会导致错误,因此我想通过应用str.title()来避免它们,前提是不为null 但是,我得到的语法无效 df= df.applymap(lambda x: x.title() if pd.notnull(x)) ^ SyntaxError: invalid syntax 另一种尝试: df= df.

我正在尝试做一个简单的操作,将数据帧转换为标题库

有些NAN会导致错误,因此我想通过应用
str.title()
来避免它们,前提是
不为null

但是,我得到的
语法无效

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
这是一个问题,您还必须为
其他
(如果不满足条件)提供一个值

试试这个:

df=df.applymap(如果pd.notnull(x)else“”,则为lambda x:x.title())

您可以用空白字符串填充缺少的值:

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

numpy.core.defchararray.title

运行
Series.str.title

df.apply(lambda x:x.str.title())

谢谢if语句是否总是需要一个
else
?@SCool否,但它不是一个真正的if语句,它是一个必须计算为某个值的表达式。为什么NaN的存在会导致错误?出于好奇,我认为str.title()会忽略它们,哪一个更快:(1)将矩阵重塑为单列以应用str方法,而不是(2)对矩阵的每列应用str方法
from numpy.core.defchararray import title

title(df.to_numpy().astype(str))
df.apply(lambda x:x.str.title())