Python: удалить остальные слова и оставить только первое слово - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть фрейм данных, который содержит столбец с повторяющейся строкой.Я хочу взять первое слово и удалить остальные слова из всех строк, которые у меня есть.Я использовал уникальный метод, так как он возвращает все уникальные значения, и я ищу только первое вхождение слов в строках.

Код:

import pandas as pd
import numpy as np
import re


df=pd.read_csv("file name")

new_data=df['Category'].unique()
changed_data=df['Category'].str.replace('[^a-zA-Z]+', '')

Это все, что я сделал, любая помощь по этому вопросу была бы великолепна.

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете использовать split и выбрать первое значение списков путем индексации с помощью drop_duplicates для удаления дубликатов:

changed_data=df['Category'].drop_duplicates().str.split().str[0]

Также возможно разделениетолько по первым пробелам:

changed_data=df['Category'].drop_duplicates().str.split(n=1).str[0]

Если важна производительность и нет значений NaN s:

changed_data= pd.Series([x.split()[0] for x in df['Category'].drop_duplicates(), 
                         index=df.index)

Образец :

df = pd.DataFrame({'Category':['some way','nice', 'yop yop m', 
                               'be happy', 'nice', 'yop man']})

print (df)
    Category
0   some way
1       nice
2  yop yop m
3   be happy
4       nice
5    yop man

Сначала удалите дубликаты, а затем получите первое слово:

changed_data=df['Category'].drop_duplicates().str.split().str[0]
print (changed_data)
0    some
1    nice
2     yop
3      be
5     yop
Name: Category, dtype: object

Или сначала получите первое слово, а затем удалите дубликаты:

changed_data=df['Category'].str.split().str[0].drop_duplicates()
print (changed_data)
0    some
1    nice
2     yop
3      be
Name: Category, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...