使用pandas读取csv文件并将NaN值放在具有指数表示法的列中

时间:2017-03-22 15:32:48

标签: python python-3.x pandas dataframe

我有一些温度数据,有些列的温度不正确,读取非常大的值,例如" 3.40282E + 38"。出于某种原因,当我使用此代码时,它将使用科学记数法删除列。如何设置此代码以使列保持科学记数法?另外,如果有科学记数法,我如何设置它以放置NaN值?

df = pd.read_csv("input.csv", index_col="DateTime", parse_dates=True, na_values='Null', keep_default_na=False)
    df = df.resample('1min').mean()
    df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq="1min"))
    df.to_csv("output.csv", index=True, index_label="DateTime", na_rep='NaN')

1 个答案:

答案 0 :(得分:1)

如果没有示例,很难说,但你可以尝试这个来处理read_csv之外的问题:

df = pd.read_csv(..., dtype='object')  # reads data as string
df['temperature'] = pd.to_numeric(df['temperature'], errors='coerce')

由于'coerce'转换不会失败,但无法转换的字符串将替换为空值。