我有一个带有多层索引的数据框。
values observations
time x1 x2 x3 x4 ... x1 x2 x3 x4 ...
t1 v1_1 nan v3_1 v4_1 ... o1_1 nan o3_1 o4_1 ...
t2 v1_2 v2_2 nan v4_2 ... o1_2 o2_2 nan o4_2 ...
我正在尝试使用0填充观测帧中的缺失值。
df.loc[:,('observations')].fillna(value=0, inplace=True)
但这并不能填充df。当我对切片应用fillna时,它可以正常工作。
dfx = df.loc[:,('observations')].fillna(value=0)
dfx的空值已被替换为0,我可以替换原始部分。
df.observations = dfx
我不清楚为什么第一种方法行不通,这似乎很奇怪。请问有人能够在这里给我解释一下吗?
loc
没有原地工作。因此,如果使用df1 = df.loc[:,('observations')]
和df1.fillna(value=0, inplace=True)
就可以解决问题。 - jezrael