Заполнить пропущенные значения в столбце dataframe значением подстроки из другого столбца

Третий день пытаюсь решить элементарнейшую задачу - заполнить пропущенные значения в столбце dataframe значением подстроки из другого столбца. Поля строковые. Перечитал кучу документации и примеров. В итоге вымучил вот что

def podstroka(y):
    return 'J' + y[14:]
df_FileOne['US'] = df_FileOne['US'].apply(lambda x: podstroka(df_FileOne['Debet'].astype(str)) if df_FileOne[df_FileOne['US'].isnull()] else df_FileOne['US'])

Но не работает. ValueError: The truth value of a DataFrame is ambiguous. Помогите, специалисту тут на решение задачи - только время на набор строчки с кодом. DataFrame


Ответы (1 шт):

Автор решения: Алексей Р

Время пришлось потратить не только на набор строчки с кодом, но и на создание примера данных. Не постите данные и код картинками.

df = pd.DataFrame({'US': [None, None, 'J12345', 'J4565285'], 'Debet': ['10101010101010101', '4747474747474747', '898989898989898', '46584512513512']})
df.loc[mask, 'US'] = 'J' + df.loc[(mask := df.US.isna()), 'Debet'].str[:14]
print(df)
                US              Debet
0  J10101010101010  10101010101010101
1  J47474747474747   4747474747474747
2           J12345    898989898989898
3         J4565285     46584512513512
→ Ссылка