【发布时间】:2021-01-17 02:32:57
【问题描述】:
更新:这似乎是由于 .loc ,如果我使用原始 df 来自 pd.read_excel,没问题。
我有一个具有如下 Dtypes 的数据框。
这是数据框的 csv: CSV File
日期 datetime64[ns] 金额 float64 货币对象 标识对象
我用下面的代码替换了NaT、NaN
a=np.datetime64('2000-01-01')
values={'Date':a,'Amount':0,'Currency':'0','ID':'0'}
df.fillna(value=values,inplace=True)
但是,我得到了错误:TypeError: only integer scalar arrays can be convert to a scalar index.
我还尝试用每一列填充na,但没有看到错误消息,但 Nan 和 Nat 仍然保持不变。
a=np.datetime64('2000-01-01')
df[['Date']].fillna(a,inplace=True)
df[['Amount']].fillna(0,inplace=True)
df[['Currency']].fillna('0',inplace=True)
df[['ID']].fillna('0',inplace=True)
这对我来说似乎很奇怪,因为我已经成功使用了很多次 fillna。 请给我一个建议。非常感谢。
【问题讨论】:
-
你能给出示例 csv 作为文本格式而不是图像吗?
-
我刚刚在帖子顶部添加了指向 csv 文件的链接。
-
我尝试阅读您的 csv,但无法重现错误。在我这边,它可以按预期使用您的代码 -
df.fillna(value=values,inplace=True)
标签: python pandas dataframe fillna