Почему не работает apply для некоторых столбцов?

Мой фрейм данных "до того":

Df_row

df_row.apply(lambda x: x.replace('\t', ''), axis=1), 

Но apply применяется не ко всем столбцам:

Df_row после

А так работает:

'\tFormula A: UNIQUES(A)'.replace('\t', '')

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

Автор решения: MaxU

Воспользуйтесь методом Series.str.replace(), но только для строковых столбцов.

Рабочий пример:

In [9]: df = pd.DataFrame({"Formula":['\tFormula A: UNIQUES(A)'] * 3, "level_number": [1,2,3]})

In [10]: df
Out[10]:
                   Formula  level_number
0  \tFormula A: UNIQUES(A)             1
1  \tFormula A: UNIQUES(A)             2
2  \tFormula A: UNIQUES(A)             3

In [11]: str_cols = df.columns[df.dtypes.eq("object")]

In [12]: df.loc[:, str_cols] = df.loc[:, str_cols].apply(lambda x: x.str.replace("\t", ""))

In [13]: df
Out[13]:
                 Formula  level_number
0  Formula A: UNIQUES(A)             1
1  Formula A: UNIQUES(A)             2
2  Formula A: UNIQUES(A)             3

NOTE: постарайтесь в будущем приводить в вопросах воспроизводимые примеры данных.

→ Ссылка