python - 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]+', '')
这就是我所做的一切,对此的任何帮助都会很棒。
解决方案
您可以通过使用删除重复项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
推荐阅读
- python - AttributeError:模块“测试”没有属性“myfunc”
- reactjs - 我不明白这里的 useEffect 发生了什么
- node.js - Req.body 在 express 中的路由器内部未定义
- javascript - 如何使用 lodash 或 VueJS 中的任何 JS 库从类别对象中搜索产品名称
- c++ - 如何使用 IIS 管理使用 C++ REST SDK 开发的 RESTful Web 应用程序
- android - 添加片段时我的应用程序崩溃。这是为什么?我该如何解决?
- tableau-api - 在 Tableau 中一次创建多个计算字段?
- javascript - 为什么我的函数没有返回所需的值,但是,console.log() 可以完成这项工作?
- java - 我可以对 Redis 值执行正则表达式搜索吗?
- r - 如何将字符串列表传递给函数?