动态计算 Pandas 中公式的表达式
在 pandas 中,有多种方法可以动态计算公式中的表达式:
1。 pd.eval()
此函数使用字符串作为输入来计算算术表达式。它支持数学运算、逻辑运算符和条件语句。您可以按如下方式使用它:
expression = "df1['A'] + (df1['B'] * x)" pd.eval(expression)
2. DataFrame.eval()
与 pd.eval() 类似,此方法计算 DataFrame 中的表达式。它提供了一种无需指定“df1”即可访问列的便捷方法。前缀。
df1.eval("A + (B * x)")
3. DataFrame.query()
此函数计算条件表达式并返回布尔掩码。然后,您可以使用掩码来过滤 DataFrame。
condition = "A >= B" df1.query(condition)
特定问题的答案:
分配结果:您可以使用“target=”将表达式的结果分配回 DataFrame参数。
df2 = pd.DataFrame() pd.eval("df2['D'] = df1['A'] + (df1['B'] * x)", target=df2)
传递参数:你可以使用“@”符号将参数作为表达式中的变量传递。
expression = "df1['A'] + (@x * df1['B'])" pd.eval(expression, local_dict={"x": 5})
其他注意事项:
以上是如何使用 pd.eval()、DataFrame.eval() 和 DataFrame.query() 动态计算 Pandas 中的表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!