Python 3.x:确定缺失值的函数
Posted
技术标签:
【中文标题】Python 3.x:确定缺失值的函数【英文标题】:Python 3.x: function to determine missing values 【发布时间】:2020-09-13 02:45:23 【问题描述】:我有以下数据:
import pandas as pd
data = 'var1': ['pero03930', 'pero03930', ' '],
'var2': ['121324', '232434', ' '],
'var3': [343, 937, 989],
df = pd.DataFrame (data, columns = ['var1', 'var2', 'var3'])
print(df)
我正在尝试开发一个识别缺失值的函数,这就是我目前所拥有的:
def missing_values(var1, var2, var3):
if var1 is None:
return 'Missing var1 in data'
if var2 is None:
return 'Missing var2 in data'
if var3 is None:
return 'missing var3 value in data'
else:
return 'No missing values in data'
print(missing_values(df))
我得到这个错误:
TypeError: missing_values1() missing 2 required positional arguments: 'var2' and 'var3'
我知道这是因为函数试图找到另外两个参数。如何让函数识别参数在数据集中?还是一般有更好的方法来编写这个函数?
【问题讨论】:
这能回答你的问题吗? Find empty or NaN entry in Pandas Dataframe 【参考方案1】:我相信你应该使用内置函数来查找None
。还有" " != None
import pandas as pd
data = 'var1': ['pero03930', 'pero03930', None],
'var2': ['121324', '232434', ' '],
'var3': [343, 937, 989],
df = pd.DataFrame (data, columns = ['var1', 'var2', 'var3'])
print(df[df.isnull().any(axis=1)])
输出
var1 var2 var3
2 None nan 989
您的代码
如果您愿意,您的代码可以正常工作,然后检查以下代码。但是你的代码有很多问题。
当找到第一个None
时,它将返回。它永远不会在同一行中找到其他 None
import pandas as pd
data = 'var1': ['pero03930', 'pero03930', None],
'var2': ['121324', '232434', ' '],
'var3': [343, 937, 989],
df = pd.DataFrame (data, columns = ['var1', 'var2', 'var3'])
def missing_values(var1,var2,var3):
if var1 is None:
return 'Missing var1 in data'
if var2 is None:
return 'Missing var2 in data'
if var3 is None:
return 'missing var3 value in data'
else:
return 'No missing values in data'
for index, row in df.iterrows():
print(missing_values(row["var1"], row["var2"], row["var3"]))
输出
No missing values in data
No missing values in data
Missing var1 in data
如果此解决方案解决了您的问题,请接受它,否则请评论问题所在。
【讨论】:
嗨,谢谢。你能解释一下为什么代码有很多问题吗?没关系,一旦发现 null 或 None 就停止搜索,我只需要知道是否有 1 个或多个 null。使用您在此处使用该功能的方式确实有效 如果您在找到其他 None 时不关心,那么您的代码就可以了。如果您的问题得到解决,请接受。以上是关于Python 3.x:确定缺失值的函数的主要内容,如果未能解决你的问题,请参考以下文章