Функция для разделения и расширения возвращая NameError - PullRequest
0 голосов
/ 06 февраля 2020
def unique_unit_split(df):
    df_unit_list = df_master.loc[df_master['type'] == 'unit']
    df_unit_list = df_unit_list.key.tolist()

    for i in range(len(df_unit_list)):
        df_unit_list[i] = int(df_unit_list[i])

    split_1 = df_units.units.str.split('[","]',expand=True).stack()
    df_units_update = df_units.join(pd.Series(index=split_1.index.droplevel(1), data=split_1.values, name='unit_split'))
    df_units_final = df_units_update[df_units_update['unit_split'].isin(df_unit_list)]

    return(df) 

Обновленный скрипт: все еще не работает

df_unit_list = []
split_1 = pd.DataFrame()
df_units_update = pd.DataFrame()
df_units_final = pd.DataFrame()

def unique_unit_split(df):
    df_unit_list = df_master.loc[df_master['type'] == 'unit']
    df_unit_list = df_unit_list.key.tolist()

    for i in range(len(df_unit_list)):
        df_unit_list[i] = int(df_unit_list[i])

    split_1 = df_units.units.str.split('[","]',expand=True).stack()
    df_units_update = df_units.join(pd.Series(index=split_1.index.droplevel(1), data=split_1.values, name='unit_split'))
    df_units_final = df_units_update[df_units_update['unit_split'].isin(df_unit_list)]

    return(df)

Вышеупомянутая функция изначально работала, когда я разделял два действия (код, включающий для l oop и выше, был в функции, тогда все ниже split_1 была в другой функции). Теперь, когда я попытался сжать их, я получаю NameError (изображение прилагается). Кто-нибудь знает, как я могу решить эту проблему и убедиться, что мой окончательный df (df_units_final) определен?

Для более глубокого понимания этой функции: у меня есть df со значениями, разделенными запятыми в одном столбце, и мне нужно было разделить этот столбец удалите [] и оставьте только строки с нужными мне #, которые были определены в списке, созданном "df_unit_list". NameError Details

1 Ответ

0 голосов
/ 06 февраля 2020

Проблема была заявлена ​​выше (не определяя df_units_final) И мой for_l oop заставлял список быть int, когда значения в другом df были фактически строками.

Рабочий код

...