如何在熊猫中将N / A(NaT)转换为0

时间:2019-03-15 17:08:39

标签: python pandas selenium

我在熊猫数据框中得到以下输出;似乎是因为我很少为某些记录使用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)

1 个答案:

答案 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