[Python] NameError Traceback (most recent call last)

Discussão em 'Python' iniciado por Stack, Março 3, 2025.

  1. Stack

    Stack Membro Participativo

    I have been trying to run this program below without any success because of a Traceback error which i do not understand since the function is clearly defined. Any suggestions greatly appreciated. I am running on Windows10, Jupyter Notebook, Python3. I hope the information is sufficient to provide some pointers.

    """
    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, dataframe_split), 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, iterable, mapstar, chunksize).get()
    365
    366 def starmap(self, func, iterable, 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

    Continue reading...

Compartilhe esta Página