Pandas read_csv fillna

Hen*_*Hub 3 python pandas data-science

我有一些我正在从 CSV 文件中读取的数据,并且一个数据框列记录在不同的时间戳间隔(时间序列数据)上,但我无法df.fillna(method = 'ffill').fillna(method = 'bfill')工作。

如果我不使用keep_default_na=FalsePython读取 CSV 文件,则使用 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()
Run Code Online (Sandbox Code Playgroud)

似乎无论我尝试什么,我都没有解决标记为OAT:(

在此处输入图片说明

非常感谢任何提示,我已将此处的数据 CSV 文件加载到我的 GitHub 帐户中。

And*_*den 5

当您这样做时keep_default_na=Falseread_csv通常会读取并解析为 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 应该可以工作。