我在熊猫数据框中得到以下输出;似乎是因为我很少为某些记录使用null
值:
Cannot convert non-finite values (NA or inf) to integer
如何在python / pandas中编写处理程序或其他内容,以将很少的N/A
记录值转换为0-当它们出现时,以便我的脚本可以继续;大概可以解决这个问题?
下面是我的代码;尝试使用fillna()
-此代码附加功能消除了数据帧输出中的“无法转换非有限值..”错误。
但是对于那些很少记录,它仍然在熊猫数据框输出中显示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)
答案 0 :(得分:2)
以下是使用fillna()
的示例:
df = pd.DataFrame([[1, 2, np.nan],
[5, np.nan, 7]],
columns=list('ABC'))
df
A B C
0 1 2.0 NaN
1 5 NaN 7.0
df.fillna(0)
A B C
0 1 2.0 0.0
1 5 0.0 7.0