#python #object #lambda #isnull
#python #объект #лямбда #isnull
Вопрос:
Для этого фрейма данных:
import pandas as pd
df=pd.DataFrame([[2],['do-g'],['ra-t'],['ca-t'],[5]], columns=['A'])
print(df)
Значения в столбце ‘A’ обрабатываются как значения ‘int’. Как мне добавить новый столбец (полученный из столбца «A»), в котором из слов удален символ «-«, но числа / целые числа остаются такими, какие они есть?
Моя попытка решения:
df['new_column']=df.A.apply(lambda x: x.replace('-') if x.isnull() else x)
Ответ №1:
Вы можете игнорировать нестроковые значения в вашем lambda.
>>> df['new_column'] = df.A.apply(lambda x: x.replace('-', '') if isinstance(x,str) else x)
>>> df
A new_column
0 2 2
1 do-g dog
2 ra-t rat
3 ca-t cat
4 5 5