Python:去掉剩下的单词,只保留第一个单词

我有一个包含重复字符串列的数据框。我想取第一个单词并从我拥有的所有行中删除其余单词。我使用了 unique 方法,因为它返回所有唯一值,并且我只查找行中第一次出现的单词。


代码:


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]+', '')

这就是我所做的一切,对此的任何帮助都会很棒。


白衣非少年
浏览 276回答 1
1回答

杨__羊羊

您可以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]如果性能很重要并且没有NaNs 值: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)    Category0   some way1       nice2  yop yop m3   be happy4       nice5    yop man首先删除重复项,然后获取第一个单词:changed_data=df['Category'].drop_duplicates().str.split().str[0]print (changed_data)0    some1    nice2     yop3      be5     yopName: Category, dtype: object或者先获取第一个单词,然后删除重复项:changed_data=df['Category'].str.split().str[0].drop_duplicates()print (changed_data)0    some1    nice2     yop3      beName: Category, dtype: object
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python