TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value当我尝试用特定的字符串值替换多列中的数值时,我收到错误.
df =
TYPE VD_1 VD_2 VD_3
AAA 1234 22122 2345
AAA 1234 2345 22122
Run Code Online (Sandbox Code Playgroud)
我是这样做的:
df[df.isin([22122])] = "English"
Run Code Online (Sandbox Code Playgroud)
要么
df[df==22122] = "English"
Run Code Online (Sandbox Code Playgroud)
如果你stack是df,那么你可以将整个df与标量值进行比较,替换然后unstack:
In [122]:
stack = df.stack()
stack[ stack == 22122] = 'English'
stack.unstack()
Out[122]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
Run Code Online (Sandbox Code Playgroud)
或者replace:
In [125]:
df.replace(22122,'English', inplace=True)
df
Out[125]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
Run Code Online (Sandbox Code Playgroud)
我意识到这是一个老问题,但我相信这个答案对某些人有用,因为它允许替换基于复杂条件的值。
In [17]: df = df.where(df!=22122, other="English")
In [18]: df
Out[18]:
TYPE VD_1 VD_2 VD_3
0 AAA 1234 English 2345
1 AAA 1234 2345 English
Run Code Online (Sandbox Code Playgroud)
注意在where子句中的条件是:值没有满足由值替换other。
| 归档时间: |
|
| 查看次数: |
4985 次 |
| 最近记录: |