[英]Math Eval String in DataFrame Python
>>> df['X'].head()
0 25+4
1 25+5
2 15+3
3 20+2
4 20+3
Name: X, dtype: object
How do I evaluate this so my dataframe is this:我如何评估这个所以我的数据框是这样的:
>>> df['X'].head()
0 29
1 30
2 18
3 22
4 23
Name: X, dtype: int64
Although there are security concerns, you can use eval
to evaluate each element using a lambda
expression.尽管存在安全问题,但您可以使用
eval
使用lambda
表达式评估每个元素。
df = pd.DataFrame({'X': ['25+4', '25+5', '15+3', '20+2', '20+3']})
>>> df
X
0 25+4
1 25+5
2 15+3
3 20+2
4 20+3
>>> df.X.apply(lambda x: eval(x))
0 29
1 30
2 18
3 22
4 23
Name: X, dtype: int64
For a description of security concerns, see:有关安全问题的说明,请参阅:
Security of Python's eval() on untrusted strings? Python 的 eval() 对不可信字符串的安全性?
https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
Using python's eval() vs. ast.literal_eval()? 使用 python 的 eval() 与 ast.literal_eval()?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.