У меня есть две колонки с повторяющимися строками. В целях эффективности я преобразовал столбцы в категорию. Однако теперь я теряю возможность выполнять конкатенацию строк, если я не преобразую тип столбца обратно в str. Я бы подумал, что, поскольку значения категорий относятся к строкам, pandas должна иметь возможность выполнить эту операцию под капотом.
Пожалуйста, посмотрите фрагмент кода ниже и дайте мне знать, если мой вопрос ясен, и если так что, если есть лучший ответ.
>>> import pandas as pd
>>> pd.__version__
'0.25.3'
>>> df1 = pd.DataFrame({'col1': ['A', 'B'], 'col2': ['C', 'D']})
>>> df1
col1 col2
0 A C
1 B D
>>> df1.col1 + "_" + df1.col2
0 A_C
1 B_D
dtype: object
>>> df2 = df1.astype({'col1': 'category', 'col2': 'category'})
>>> df2
col1 col2
0 A C
1 B D
>>> df2.col1 + "_" + df2.col2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "[hidden]/python3.7/site-packages/pandas/core/ops/__init__.py", line 985, in wrapper
"{op}".format(typ=type(left).__name__, op=str_rep)
TypeError: Series cannot perform the operation +
>>> df3 = df2.astype({'col1': 'str', 'col2': 'str'})
>>> df3.col1 + "_" + df3.col2
0 A_C
1 B_D
dtype: object