python - 如何将数据帧列乘以浮点常量?

标签 python pandas floating-point multiplication

我正在尝试将一列乘以一个 float 。我这里有它的代码:

if str(cMachineName)==str("K42"):
        df_temp.loc[:, "P"] *= float((105.0* 59.0*math.pi*0.95/1000)/3540)

但它给了我这个错误:

TypeError: can't multiply sequence by non-int of type 'float'. 

如何解决?

最佳答案

我认为问题是一些非数字值,例如 45 作为字符串:

解决方案正在通过 astype 转换为 floatint :

df_temp = pd.DataFrame({'P':[1,2.5,'45']})

print (df_temp['P'].dtype)
object

df_temp["P"] = df_temp["P"].astype(float)
df_temp["P"] *= float((105.0* 59.0*math.pi*0.95/1000)/3540)
print (df_temp)
          P
0  0.005223
1  0.013057
2  0.235030

另一个问题是像gh这样的非数字数据,需要进行转换to_numeric使用 errors='coerce' 将它们转换为 NaNs:

df_temp = pd.DataFrame({'P':[1,2.5,'gh']})

print (df_temp['P'].dtype)
object

df_temp["P"] = pd.to_numeric(df_temp["P"], errors='coerce')
print (df_temp)
     P
0  1.0
1  2.5
2  NaN

df_temp["P"] *= float((105.0* 59.0*math.pi*0.95/1000)/3540)
print (df_temp)

          P
0  0.005223
1  0.013057
2       NaN

关于python - 如何将数据帧列乘以浮点常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46440291/

相关文章:

python - 提取单行时如何保留 Pandas 数据框身份

python - 将 pandas 列中的关键字与另一个元素列表匹配

python - python 中变量的 float 除法错误

python - 使用 re.split 拆分字符串时的额外空元素

python - 如何使用python检查给定的英语句子是否包含所有无意义的单词?

python - 按 1 分钟对大量 GPS 数据进行分组

python - Matplotlib 表中的双 header

architecture - 32位 float 可以表示多少个数字

r - 接近下溢限制的数字在 tibble 中显示为 `Inf.e-324`?

python - Python docker SDK内容信任无效