【问题标题】:Turn mathematical equations (dtype is object) into a number python将数学方程(dtype是对象)变成数字python
【发布时间】:2016-12-12 04:30:56
【问题描述】:

所以我有一列是 dtype 的对象。数据如下所示:

NaN
1*5+4
1*5+3.25
2*5+3.25
4.25
0
2*5+2.5

期望的输出是:

*blank or 0 for NaN*
9
8.25
13.25
4.25
0
12.5

我曾尝试使用 eval() 和 pd.eval() 但不成功。我收到以下错误,分别是“TypeError: eval() arg 1 must be a string, bytes or code object”和“AttributeError: 'PandasExprVisitor' object has no attribute 'visit_Ellipsis'”。任何可以执行此操作的功能?还是我需要在计算之前对列执行操作?

【问题讨论】:

  • 在传递给eval()之前先转换成str?没有你的实际代码很难说。你可以编辑一些MVCE
  • 我曾尝试先将其转换为字符串,但没有成功。 fillna(0) 解决了我的问题。

标签: python regex function pandas calculated-columns


【解决方案1】:

你可以试试这个。如果您想将缺失值转换为零,请致电.fillna(0)

df[0].apply(pd.eval)

#0      NaN
#1     9.00
#2     8.25
#3    13.25
#4     4.25
#5     0.00
#6    12.50
#Name: 0, dtype: float64

【讨论】:

    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多