我无法找到关于我认为是一个简单问题的明确答案。这适用于Python 3.当列具有null和non null值时,在数据上应用函数,循环等时,有哪些提示和技巧?
这是我今天清理一些数据时遇到的例子。我有一个函数,从我的合并数据帧中取两列,然后计算一个比率,显示两个字符串是多么相似。
进口:
from difflib import SequenceMatcher
import pandas as pd
import numpy as np
import pyodbc
import difflib
import os
from functools import partial
import datetime
我的职能:
def apply_sm(merged, c1, c2):
return difflib.SequenceMatcher(None, merged[c1], merged[c2]).ratio()
这是我在我的代码示例中调用函数:
merged['NameMatchRatio'] = merged.apply(partial(apply_sm, c1='CLIENT NAME', c2='ClientName'), axis=1)
CLIENT NAME没有空值,而ClientName确实有空值(当我尝试应用我的函数时会抛出错误)。如何在忽略NaN值的情况下应用我的函数(在任何一列中以防万一)?
感谢您的时间和帮助。
答案 0 :(得分:0)
div = true;
i = max;
答案 1 :(得分:0)
您可以使用math.isnan检查值是否为nan并跳过它。或者,您也可以用零或其他东西替换nan,然后在其上应用您的函数。这实际上取决于你想要达到的目标。
一个简单的例子:
import math
test_variable = math.nan
if math.isnan(test_variable):
print("it is a nan value")
只需将此逻辑合并到您认为合适的代码中即可。