Извлекайте буквенные буквы между каналом и японским символом и заменяйте их пробелом

1

У меня есть некоторые данные, которые выглядят так в кадре данных:

Japanese
--------
明日|Adverb の|Case 天気|Weather は|Case なんですか

Используя Pandas, я ищу способ вернуть это в новом столбце

Tag
------
Adverb, Case, Weather

До сих пор я мог использовать

df['Tag'] = df.iloc[:, 0].str.replace('[^a-zA-Z]', ' ')

получить

Tag
------
Adverb Case Weather

но когда я бегу

df['Tag'] = df['Tag'].str.replace(' ', ',')

я получил

Tag
------
,,,,Adverb,,,Case,,,,Weather,,,Case,,,,,,

Я думаю, что я должен использовать str.extract вместо замены, но я также получаю сообщение об ошибке в этом случае.

  • 0
    Попробуйте df['Tag'] = df['Japanese'].str.extractall(r'([A-Za-z]+)').drop_duplicates().apply(', '.join)
Теги:
pandas
dataframe

1 ответ

2
Лучший ответ

pandas.Series.str.findall

s = df.Japanese.str.findall('(?i)[a-z]+')
pd.Series([', '.join({*x}) for x in s], s.index)

0    Adverb, Weather, Case
dtype: object

отсортированный

s = df.Japanese.str.findall('(?i)[a-z]+')
pd.Series([', '.join(sorted({*x})) for x in s], s.index)

0    Adverb, Case, Weather
dtype: object
  • 0
    Спасибо!! решена!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню