我刚刚阅读并兴奋地流口水,这些新发现的优化功能可以满足我的Pandas
相关需求。根据这本书:
DataFrame.eval() 方法允许使用列对表达式进行更简洁的评估:
result3 = df.eval('(A + B) / (C - 1)')
np.allclose(result1, result3)
真的
以我为例:
我的数据框包含大约 42000 条记录和 28 列。其中两个是字符串Date
,Heure
哪些是字符串。
我的目标:将两列合并为一列。我可以用这段代码轻松地做到这一点:df_exade_light["Date"]+df_exade_light["Heure"]
,在其上应用 a %timeit
返回
每个循环 6.07 毫秒 ± 219 微秒(平均值 ± 标准偏差。7 次运行,每次 100 次循环)
但由于某种原因df.eval('Date + Heure')
返回一个:
RecursionError:超出最大递归深度
更重要的是,我应用在这个线程中找到的解决方案来提高允许的堆栈深度,但内核只是崩溃了。
这是什么原因?难道我做错了什么?
可以使用以下代码重现该问题:
import pandas as pd
df = pd.DataFrame({'A': ['X','Y'],
'B': ['U','V']})
df.eval('A+B')