如何解决NameError Traceback最近一次调用最后一次
我一直在尝试在下面运行这个程序,但没有成功,因为出现了一个 Traceback 错误,我不明白,因为函数是明确定义的。任何建议都非常感谢。我在 Windows10、Jupyter Notebook、python3 上运行。我希望这些信息足以提供一些指导。
"""
Multi processing in Python,threading
"""
import pandas as pd
import timeit,sys
import numpy as np
import multiprocess as mp
df = pd.read_csv("C:/files/data.csv",encoding="UTF-8")
df['start-digits'] = None
startTime = timeit.default_timer()
def strip_digits(x):
return str(x)[:4]
def zip_handler(x):
x['start-digits'] = x['Zip Codes'].apply(strip_digits)
return x
def parallelize(dataframe,func):
dataframe_split = np.array_split(dataframe,partitions)
pool = mp.Pool(cores)
dataframe_return = pd.concat(pool.map(func,dataframe_split),ignore_index=True)
pool.close()
return dataframe_return
if __name__ == '__main__':
#mp.set_start_method('spawn')
cores = mp.cpu_count()
partitions = cores
df = parallelize(df,zip_handler)
group_dataframe = df.groupby(['Zip Codes'])
size_of_group = group_dataframe.size()
print(size_of_group)
print(group_dataframe.get_group(2443))
stopTime = timeit.default_timer() - startTime
round_time = round(stopTime,6)
print('')
print(round_time/60,'min handle time')
print('cpu threads',cores)
print('split size',partitions)
RemoteTraceback Traceback (most recent call last)
RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Users\trevo\anaconda3\lib\site-packages\multiprocess\pool.py",line 125,in worker
result = (True,func(*args,**kwds))
File "C:\Users\trevo\anaconda3\lib\site-packages\multiprocess\pool.py",line 48,in mapstar
return list(map(*args))
File "<ipython-input-10-e6bb79e2f39d>",line 20,in zip_handler
NameError: name 'strip_digits' is not defined
"""
The above exception was the direct cause of the following exception:
NameError Traceback (most recent call last)
<ipython-input-10-e6bb79e2f39d> in <module>
35 partitions = cores
36
---> 37 df = parallelize(df,zip_handler)
38
39 group_dataframe = df.groupby(['Zip Codes'])
<ipython-input-10-e6bb79e2f39d> in parallelize(dataframe,func)
24 dataframe_split = np.array_split(dataframe,partitions)
25 pool = mp.Pool(cores)
---> 26 dataframe_return = pd.concat(pool.map(func,ignore_index=True)
27 pool.close()
28
~\anaconda3\lib\site-packages\multiprocess\pool.py in map(self,func,iterable,chunksize)
362 in a list that is returned.
363 '''
--> 364 return self._map_async(func,mapstar,chunksize).get()
365
366 def starmap(self,chunksize=None):
~\anaconda3\lib\site-packages\multiprocess\pool.py in get(self,timeout)
769 return self._value
770 else:
--> 771 raise self._value
772
773 def _set(self,i,obj):
NameError: name 'strip_digits' is not defined
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。