'numpy.float64' 对象在填充 NaN 时没有属性 'fillna'



我正试图用一个确切的数字来填充一个缺失的值。我有一个新冠肺炎数据集,在香港有一些列缺少值,但我只一个NaN值需要填充。

df = pd.read_csv("https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/owid-covid-data.csv")
df= df[df['date']=='2020-10-27']
df
df[df.location=='Hong Kong']  
value = 5300
##22286 --> it is the index where HK 
df.loc[22286]['total_cases'] = df.loc[22286]['total_cases'].fillna(value)

我得到以下错误:

AttributeError:'numpy.foat64'对象没有属性'fillna'**

然后我尝试将值转换为float:

value= float(value)

然而,我得到了以下信息:

试图在DataFrame 的切片副本上设置值

请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy"quot"启动IPython内核的入口点。**

此处使用at

df.at[22286, 'total_cases'] = value
print(df.loc[22286]['total_cases'])
5300.0

fillna()是一个映射项的数组函数,您正在访问单个值,而不是numpy/pandas数组…:

而是做

df.loc[22286,'total_cases'] = value
import pandas as pd
df = pd.read_csv('data.csv')
df.loc[17,'Calories']=679
print(df.to_string())

最新更新