我正在尝试在Route::get('complaintSuggestion', function() {
return view('patials.complaintSuggestion');
})->middleware('auth');
环境中将变量名转换为字符串。这个code在正常的python环境中可以正常工作。但是,在创建dask
数据框后运行该代码时,该代码不起作用。代码如下。
dask
编辑
from dask.distributed import Client
client = Client()
import dask.dataframe as dd
import numpy as np
import pandas as pd
df = pd.DataFrame({'A':['ant','ant','cherry', 'dog', 'ant'], 'B':['animal','animal1', 'fruit', 'animal', 'animal'], 'C':['small','small1','small', 'big', np.nan]})
ddf = dd.from_pandas(df, npartitions=2)
ddf.head()
#The below code gives an error because of the above code (Please see the **error** below). The below code on its own runs fine.
my_var = [2,'wew','ewwew','44']
[ k for k,v in locals().items() if v == my_var][0]
错误在下面。
# The expected output. It works on jupyter notebook without any modules
# loaded. (It is the name of the list)
out []: 'my_var'
在这个问题上,谁能帮助我。
谢谢
迈克尔
答案 0 :(得分:2)
您的代码是一件很奇怪的事情!由于您遍历所有变量,因此,如果发生的事情取决于定义的变量,您应该不会感到惊讶。特殊情况来自于询问是否'wew' == df
,并且数据帧对相等意味着什么有非常具体的理解。对于pandas数据框也可能发生这种情况,或者对于具有equals的复杂实现的任何情况也是如此。
您可能只想对字符串进行测试,因为您知道要查找的内容:
[k for k, v in locals().items() if isinstance(v, str) and v == my_var][0]