Заполнить пропущенные значения в столбце 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. Помогите, специалисту тут на решение задачи - только время на набор строчки с кодом.
Ответы (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