python - 检查变量是 NaN 还是 Pandas 数据框中的 None
问题描述
我有一个包含 2 个表的数据库。我正在将这两个表读入一个熊猫数据框(每个都有自己的数据框),然后将它们合并到一个数据框中。两个表都包含数据排序的共同时间值,如果有一些缺失的数据,则用以前的已知值填充。由于组合,列中的值可能是 NaN 或 None。
df_A = pd.read_sql('Select * from A', db_connection)
df_B = pd.read_sql('Select * from B', db_connection)
df = pd.concat([df_A, df_B]).sort_values('Time')
df = df.fillna(method='pad')
现在在这个数据帧上,我正在执行 apply 函数来对两个表中的数据执行一些计算。
在计算函数中,我想检查输入数据是否包含一些数据(如果输入之一是 NaN 或 None,则计算没有意义,并且会有异常 - 我想要事先避免)。
如何检查 from_A(或 from_B)是 NaN 还是 None?(或者还有其他解决方案吗?)
df['new_data'] = df.apply(lambda x: calculate (x.A, x.B))
def calculate (from_A, from_B):
do some calculations here
return data
我怎样才能检查
解决方案
calculate
您可以使用函数在函数本身中显式检查这一点pd.isna()
:
import pandas as pd
def calculate (from_A, from_B):
if (not pd.isna(from_A)) and (not pd.isna(from_B)):
# perform the further calculation
else:
# do something else or skip
推荐阅读
- python - python-bitcoinrpc 和 python-monerorpc 的问题
- unit-testing - 如何在 Ubuntu 18.04 上使用 -msan 选项运行 go test?
- python - Wikipedia api python 返回奇怪的结果
- java - 将 Java 转换为 Kotlin:类型不匹配。必需:MenuSlidingTabStrip.OnTabSelectedListener?找到:(无,无)→布尔
- javascript - 如何将 2300 格式的 aa 类型数字转换为小时,并与 Moment.js 的当前时间进行比较?
- singly-linked-list - for循环可以运行超过指定时间吗
- c# - 如何从 json 响应中提取一个级别并将其单独显示为独立数据 - C# .net core
- oracle - Oracle 到 postgres 坏数据移动
- xamarin.forms - Xamarin 形式:Epubreader:System.AggregateException:'发生一个或多个错误
- azure-devops - 无法有条件地将脚本添加到 Azure Devops Yaml 管道