我有一些数据是从 CSV 文件中读取的,一个数据框列记录在不同的时间戳间隔(时间序列数据)上,我无法获得 df.fillna(method = 'ffill' ).fillna(method = 'bfill')
开始工作。
如果我不使用 keep_default_na=False
读取 CSV 文件,Python 会用 NaN 填充空白,但我希望空白为空,以便我可以使用 df。 fillna(方法 = '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
的列中的问题 :(
非常感谢任何提示,我有数据 CSV 文件 here加载到我的 GitHub 帐户中。
最佳答案
当您执行 keep_default_na=False
时,这意味着 read_csv
通常会读取并解析为 NaN 的内容将不再:
By default the following values are interpreted as 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 应该工作。
关于python - Pandas read_csv fillna,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755444/