use*_*696 3 python dataframe pandas
我有一个数据框,其中有很多'?'的实例 在不同的行.列的数据类型是"对象".现在我要替换所有'?' 用0.我该怎么做?
考虑数据帧 df
df = pd.DataFrame([['?', 1], [2, '?']])
print(df)
0 1
0 ? 1
1 2 ?
Run Code Online (Sandbox Code Playgroud)
replace
df.replace('?', 0)
0 1
0 0 1
1 2 0
Run Code Online (Sandbox Code Playgroud)
mask
要么 where
df.mask(df == '?', 0)
# df.where(df != '?', 0)
0 1
0 0 1
1 2 0
Run Code Online (Sandbox Code Playgroud)
但是,假设您的数据帧?
在更长的字符串中.
df = pd.DataFrame([['a?', 1], [2, '?b']])
print(df)
0 1
0 a? 1
1 2 ?b
Run Code Online (Sandbox Code Playgroud)
replace
同 regex=True
df.replace('\?', '0', regex=True)
0 1
0 a0 1
1 2 0b
Run Code Online (Sandbox Code Playgroud)