ste*_*dv 6 missing-data dataframe pandas
我必须更换价值吗?使用 NaN 以便您可以调用 .isnull () 方法。我找到了几种解决方案,但总是返回一些错误。认为:
data = pd.DataFrame([[1,?,5],[?,?,4],[?,32.1,1]])
Run Code Online (Sandbox Code Playgroud)
如果我尝试:
pd.data.replace('?', np.nan)
Run Code Online (Sandbox Code Playgroud)
我有:
0 1 2
0 1.0 NaN 5
1 NaN NaN 4
2 NaN 32.1 1
Run Code Online (Sandbox Code Playgroud)
但 data.isnull() 返回:
0 1 2
0 False False False
1 False False False
2 False False False
Run Code Online (Sandbox Code Playgroud)
为什么?
小智 7
# a dataframe with string values
dat = pd.DataFrame({'a':[1,'FG', 2, 4], 'b':[2, 5, 'NA', 7]})
Run Code Online (Sandbox Code Playgroud)
从数据框中删除非数字元素:
"Method 1 - with regex"
dat2 = dat.replace(r'^([A-Za-z]|[0-9]|_)+$', np.NaN, regex=True)
dat2
Run Code Online (Sandbox Code Playgroud)
"Method 2 - with pd.to_numeric"
dat3 = pd.DataFrame()
for col in dat.columns:
dat3[col] = pd.to_numeric(dat[col], errors='coerce')
dat3
Run Code Online (Sandbox Code Playgroud)
我想你忘了分配回来:
data = pd.DataFrame([[1,'?',5],['?','?',4],['?',32.1,1]])
data = data.replace('?', np.nan)
#alternative
#data.replace('?', np.nan, inplace=True)
print (data)
0 1 2
0 1.0 NaN 5
1 NaN NaN 4
2 NaN 32.1 1
print (data.isnull())
0 1 2
0 False True False
1 True True False
2 True False False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16879 次 |
| 最近记录: |