Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 如何在转换中引用空单元格_Python_Excel_Pandas - Fatal编程技术网

Python 如何在转换中引用空单元格

Python 如何在转换中引用空单元格,python,excel,pandas,Python,Excel,Pandas,我正在尝试编写代码,创建一个新的excel文档,其中包含一个新列,该列根据现有数据具有不同的值。具体地说,如果“Servicer”下的单元格为空,我希望在该行中有一个名为“需要清理”的新列显示“是”,否则显示“否”。我希望下面的代码能够工作,但它对每一行都返回“No”,即使“Servicer”单元格为空。我还尝试使用python值None代替',得到了相同的结果 filepath = 'C:/Users/jackley/Desktop/' filename = 'test.xlsx' df

我正在尝试编写代码,创建一个新的excel文档,其中包含一个新列,该列根据现有数据具有不同的值。具体地说,如果“Servicer”下的单元格为空,我希望在该行中有一个名为“需要清理”的新列显示“是”,否则显示“否”。我希望下面的代码能够工作,但它对每一行都返回“No”,即使“Servicer”单元格为空。我还尝试使用python值
None
代替
'
,得到了相同的结果

filepath = 'C:/Users/jackley/Desktop/'

filename = 'test.xlsx'

df = pd.read_excel(filepath+filename)

df["Needs Cleanup?"]=df["Servicer"].apply(lambda x: "Yes" if x == '' else "No")

df.to_excel(filepath+"test"+filename,index=False)
只要我的if/else语句引用的值确实出现在“Servicer”列中,我就可以使用此代码结构为新列创建条件值。当我试图创建一个基于单元格是否为空的条件语句时,我遇到了这个问题。在这个代码结构中是否有一种方法可以根据指示的单元格是否为空返回不同的值


如果您有任何帮助,我们将不胜感激,请提前感谢

这个怎么样?您需要将“”替换为np.nan

df["Needs Cleanup?"]=df["Servicer"].apply(lambda x: "Yes" if x == np.nan else "No")

希望这有帮助

我仍然不明白为什么建议的答案不起作用,但我通过添加以下代码解决了我的问题:

df.fillna(“,inplace=True)

然后将我的条件语句更改为:

如果x==”则“是”,否则“否”


(感谢“像女孩一样编码”在一篇老博文中给出了这个答案!)

你的填充值是np.nan?你能打印df[“Servicer”].unique()。可能空值不是空字符串。可以是
一个空格或其他什么如果你@aALollz,这是个好主意,python告诉我空值实际上是“NaN”,但出于某种原因,我无法理解,即使我将代码更改为
“Yes”,如果x==“NaN”或“No”
它仍然只会给我一个很长的“No”列表:(谢谢@rahlf23-这是一个好主意,建议作为下面的答案,但不幸的是,导入numpy并使用np.nan值尝试识别空单元格在这段代码中仍然不起作用。为了彻底了解,您确实
将numpy导入为np
正确吗?非常感谢您的快速响应。不幸的是,导入numpy和使用您建议的表达式不会改变结果,“需要清理?”列仍然充满了“否”。我被难住了!