This question already has answers here:
Comparing boolean and int using isinstance
(4个答案)
9个月前关闭。
在应用以下函数的同时,我将布尔值转换为整数。
我想念什么?
输出:
预期:
而且
要解决此问题,请使用
(4个答案)
9个月前关闭。
在应用以下函数的同时,我将布尔值转换为整数。
我想念什么?
import pandas as pd
def multi(x):
if isinstance(x, (float, int)):
return x * 10
return x
print(pd.DataFrame(data={"a": [True, False]}).applymap(func=multi))
输出:
a
0 10
1 0
预期:
a
0 True
1 False
最佳答案
这是因为:
>>> isinstance(True, int)
True
>>>
True
实际上是1
!而且
False
实际上是0
,因此您正在尝试这种方法。要解决此问题,请使用
type
:def multi(x):
if type(x) in (float, int)):
return x * 10
return x
关于python - 将pandas DataFrame中的 bool 值转换为int,同时应用函数将数字相乘[duplicate],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55491782/
10-12 14:28