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