pandas объединение базовых строк столбца категории - PullRequest
0 голосов
/ 02 марта 2020

У меня есть две колонки с повторяющимися строками. В целях эффективности я преобразовал столбцы в категорию. Однако теперь я теряю возможность выполнять конкатенацию строк, если я не преобразую тип столбца обратно в 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

...