DataFrame.eval(self,expr,inplace = False,** kwargs ) [源代码]
评估描述DataFrame列上的操作的字符串。
仅在列上操作,而不在特定的行或元素上操作。这使 eval可以运行任意代码,如果将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。
参数: | expr : 要评估的表达式字符串。 inplace : 如果表达式包含一个赋值, 则是否就地执行操作并更改现有的DataFrame。 否则,将返回一个新的 0.18.0版的新功能。 kwargs : 有关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)