【发布时间】:2019-08-06 19:52:43
【问题描述】:
我在我的 pandas 数据框中得到以下输出;似乎是因为我很少对某些记录使用null 值:
Cannot convert non-finite values (NA or inf) to integer
如何在 python/pandas 中编写处理程序或其他内容,将我很少使用的 N/A 记录值转换为 0 - 当它们出现时,我的脚本可以继续;大概是为了解决这个问题?
下面是我的代码;尝试使用 fillna() - 此代码添加删除了数据帧输出中的“无法转换非有限值..”错误。
但是,对于那些很少记录的记录,它仍然在 pandas 数据框输出中显示 NaT。
for row in excel_data.itertuples():
mrn = row.MRN
if mrn in ("", " ", "N/A", None) or math.isnan(mrn):
print(f"Invalid record: {row}")
excel_data = excel_data.drop(excel_data.index[row.Index])
excel_data = excel_data.fillna(0) # attempt
continue
else:
num_valid_records += 1
print(f"Processing #{num_valid_records} records")
return self.clean_data_frame(excel_data)
【问题讨论】:
-
寻找
df.fillna(0)? -
你可以删除 NA 行,你可以用
isnan()找到它们并替换它们,你可以使用np.nan_to_num,你可以......你明白了。你研究过这个吗? -
@roganjosh 是的;我想找到它们并用 0 替换它们。
-
您可能想查看
fillna(),否则您可以创建一个可重现的示例。也来看看@this