相关疑难解决方法(0)

使用pd.eval()在pandas中进行动态表达式评估

目标和动机

pd.eval并且eval是pandas API套件中功能强大但被低估的功能,它们的使用远未完全记录或理解.小心适量,eval并且engine可以极大地简化代码,提高性能,并成为创建动态工作流的强大工具.

这个规范QnA的目的是让用户更好地理解这些功能,讨论一些鲜为人知的功能,如何使用它们,以及如何最好地使用它们,以及清晰易懂的示例.这篇文章将讨论的两个主要议题是

  1. 了解parser,df2x在争论pd.eval,以及它们如何被用来计算表达式
  2. 了解之间的差eval,eval并且engine,当每个功能是合适的用于动态执行.

这篇文章不能替代文档(答案中的链接),所以请完成它!


我将以这样的方式构建一个问题,以便开启对所支持的各种功能的讨论parser.

给出两个DataFrame

np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))

df1
   A  B  C  D
0  5  0  3  3
1  7  9  3  5
2  2  4  7  6
3  8  8  1  6
4  7  7  8  1

df2
   A  B  C …
Run Code Online (Sandbox Code Playgroud)

python eval dataframe pandas

45
推荐指数
2
解决办法
7156
查看次数

根据存储在字典中的条件从 Pandas 数据框中选择数据

我有一个包含大量变量的 Pandas 数据框。这可以简化为:

tempDF = pd.DataFrame({ 'var1': [12,12,12,12,45,45,45,51,51,51],
                        'var2': ['a','a','b','b','b','b','b','c','c','d'],
                        'var3': ['e','f','f','f','f','g','g','g','g','g'],
                        'var4': [1,2,3,3,4,5,6,6,6,7]})
Run Code Online (Sandbox Code Playgroud)

如果我想选择数据帧的一个子集(例如 var2='b' 和 var4=3),我会使用:

tempDF.loc[(tempDF['var2']=='b') & (tempDF['var4']==3),:]
Run Code Online (Sandbox Code Playgroud)

但是,如果匹配条件存储在字典中,是否可以选择数据帧的子集,例如:

tempDict = {'var2': 'b','var4': 3}
Run Code Online (Sandbox Code Playgroud)

重要的是变量名称不是预定义的,并且字典中包含的变量数量是可变的。

我一直对此感到困惑一段时间,因此任何建议将不胜感激。

python dataframe pandas

7
推荐指数
1
解决办法
2072
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

eval ×1