pandas.DataFrame.eval() 方法可以通过字符串表达式对 DataFrame 中的列进行快速计算。它可以在 DataFrame 上执行数学、逻辑和列间的计算,通常用于减少代码的复杂度并提高效率。本文主要介绍一下Pandas中pandas.DataFrame.eval方法的使用。

DataFrame.eval(self,expr,inplace = False,** kwargs )                  [源代码]

评估描述DataFrame列上的操作的字符串。

仅在列上操作,而不在特定的行或元素上操作。这使 eval可以运行任意代码,如果将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。

参数

expr : str

要评估的表达式字符串。

inplace : bool,默认为False

如果表达式包含一个赋值,

则是否就地执行操作并更改现有的DataFrame。

否则,将返回一个新的DataFrame

0.18.0版的新功能。

kwargs : dict

有关eval()接受的关键字参数的完整详细信息,

 请参见文档query()

返回值

ndarray,标量或pandas对象

评估结果。

Notes

有关更多详细信息,请参见的API文档eval()。有关详细示例,请参见使用eval增强性能

例子

1)简单的列操作

import pandas as pd

# 创建DataFrame
df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)})
print("原始 DataFrame:")
print(df)

# 使用 eval 计算 A + B
result = df.eval('A + B')
print("\nA + B 的结果:")
print(result)

2)分配新列

import pandas as pd

# 创建DataFrame
df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)})
print("原始 DataFrame:")
print(df)

# 使用 eval 创建新列 C,C = A + B
df.eval('C = A + B')
print("\n添加新列 C (A + B):")
print(df)

3)使用 inplace=True 修改原始 DataFrame

import pandas as pd

# 创建DataFrame
df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)})
print("原始 DataFrame:")
print(df)

# 使用 eval 并设置 inplace=True 
# 来直接修改原始 DataFrame
df.eval('C = A + B', inplace=True)
print("\n使用 inplace=True 修改原始 DataFrame:")
print(df)

推荐文档

相关文档

大家感兴趣的内容

随机列表