熊猫read_csv fillna

时间:2019-02-18 21:13:26

标签: python pandas data-science

我有一些要从CSV文件读取的数据,并且一个数据帧列记录在不同的时间戳记间隔(时间序列数据)上,我无法使用df.fillna(method = 'ffill').fillna(method = 'bfill')

如果我不使用keep_default_na=False来读取CSV文件,Python会用NaN来填补空白,但我希望这些空白是空白的,因此我可以使用df.fillna(method = 'ffill')

import pandas as pd
import numpy as np

#read CSV file
df_raw = pd.read_csv('C:\\desktop\\combinedSP.csv', index_col='Date', parse_dates=True, keep_default_na=False)

df_raw.head()

df_raw2 = df_raw.fillna(method = 'ffill').fillna(method = 'bfill')

df_raw2.head()

似乎无论我如何尝试,我都没有在标为OAT的列上解决此问题:(

enter image description here

任何提示,我将数据CSV文件here加载到我的GitHub帐户中。

1 个答案:

答案 0 :(得分:4)

当您执行keep_default_na=False时,这意味着read_csv通常会读取并解析为NaN的内容将不再:

  

默认情况下,以下值解释为NaN:‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’

在这种情况下,它没有将空字符串''解析为NaN,而是将其保留为空字符串。

丢弃该kwarg和fillnas应该起作用。