为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白衣非少年 2021-09-14 10:32:50
我有一个包含重复字符串列的数据框。我想取第一个单词并从我拥有的所有行中删除其余单词。我使用了 unique 方法,因为它返回所有唯一值,并且我只查找行中第一次出现的单词。代码:import pandas as pdimport numpy as npimport redf=pd.read_csv("file name")new_data=df['Category'].unique()changed_data=df['Category'].str.replace('[^a-zA-Z]+', '')这就是我所做的一切,对此的任何帮助都会很棒。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您可以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)

    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


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号