Pandas .fillna() 不适用于 .sample()
Pandas .fillna() not working with .sample()
我有一个包含列 state
的数据集,其唯一值由 ['released', 'isolated', 'deceased', nan]
组成。我尝试使用随机抽样来估算缺失数据,如下所示:
for column in ['sex','state','city']:
df[column].fillna(df[column].sample(), inplace=True)
sex
列似乎已正确估算;没有更多丢失的 sex
数据。但是,state
列似乎没有估算。当我检查该列时,我收到以下内容:
In [1]: df['state'].sample()
Out[1]: 1391 released
Name: state, dtype: object
因此,该列在上面的插补循环中得到了适当的命名。当我在原始数据帧上尝试相同时,我收到了一系列类似的 NaN
s:
In [2]: new=pd.DataFrame({'blank':[np.nan for i in range(0,100)]})
In [3]: new['blank'].fillna(df['state'].sample())
Out[3]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
..
95 NaN
96 NaN
97 NaN
98 NaN
99 NaN
Name: blank, Length: 100, dtype: float64
为什么 state
列没有为 fillna()
正确采样?
你不能 fillna
和 Series
因为它会匹配 index
new=pd.DataFrame({'blank':[np.nan for i in range(0,100)]})
new['blank'].fillna(df['state'].sample().iloc[0])
我有一个包含列 state
的数据集,其唯一值由 ['released', 'isolated', 'deceased', nan]
组成。我尝试使用随机抽样来估算缺失数据,如下所示:
for column in ['sex','state','city']:
df[column].fillna(df[column].sample(), inplace=True)
sex
列似乎已正确估算;没有更多丢失的 sex
数据。但是,state
列似乎没有估算。当我检查该列时,我收到以下内容:
In [1]: df['state'].sample()
Out[1]: 1391 released
Name: state, dtype: object
因此,该列在上面的插补循环中得到了适当的命名。当我在原始数据帧上尝试相同时,我收到了一系列类似的 NaN
s:
In [2]: new=pd.DataFrame({'blank':[np.nan for i in range(0,100)]})
In [3]: new['blank'].fillna(df['state'].sample())
Out[3]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
..
95 NaN
96 NaN
97 NaN
98 NaN
99 NaN
Name: blank, Length: 100, dtype: float64
为什么 state
列没有为 fillna()
正确采样?
你不能 fillna
和 Series
因为它会匹配 index
new=pd.DataFrame({'blank':[np.nan for i in range(0,100)]})
new['blank'].fillna(df['state'].sample().iloc[0])