pd.eval并且eval是pandas API套件中功能强大但被低估的功能,它们的使用远未完全记录或理解.小心适量,eval并且engine可以极大地简化代码,提高性能,并成为创建动态工作流的强大工具.
这个规范QnA的目的是让用户更好地理解这些功能,讨论一些鲜为人知的功能,如何使用它们,以及如何最好地使用它们,以及清晰易懂的示例.这篇文章将讨论的两个主要议题是
parser,df2并x在争论pd.eval,以及它们如何被用来计算表达式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) 以下是另一个问题的一些数据:
positive negative neutral
1 [marvel, moral, bold, destiny] [] [view, should]
2 [beautiful] [complicated, need] []
3 [celebrate] [crippling, addiction] [big]
Run Code Online (Sandbox Code Playgroud)
我首先要做的是在所有单词中添加引号,然后:
import ast
df = pd.read_clipboard(sep='\s{2,}')
df = df.applymap(ast.literal_eval)
Run Code Online (Sandbox Code Playgroud)
有更聪明的方法吗?