我有一些数据要删除某些行,但是其中一半信息丢失。
Employee_name
employee: ahmad
employee: ali
employee:
employee: abc
employee:
我要删除所有缺少姓名的员工记录。
答案 0 :(得分:1)
df.loc[df.Employee_name.str.strip().str.strip('employee:').ne('')]
答案 1 :(得分:0)
答案 2 :(得分:0)
另一种方式 数据
import pandas as pd
df=pd.DataFrame({'Employee_name':
['employee: ahmad',
'employee: ali',
'employee:',
'employee: abc',
'employee:'] })
df
在:之后提取字符串,并删除NaN
df['Employee']=df['Employee_name'].str.extract(r'(?<=\:)(\s+[a-z]+)')
df.dropna()
正则表达式说明
(?<=X)(Y)
如果X在Y之前,则获取Y
X
是:
Y
是space
\s
,后跟small alphabets
[a-z]+
文字或空格
输出
答案 3 :(得分:0)
有多种方法可以实现,您可以按照建议的here
通过以下命令进行操作data = data[data.employee != '']
另一种方法如下:
import pandas as pd
data = pd.DataFrame( {'employee' : ['Ali', '', 'Amed', '', '', 'abc']}, columns = ['employee'])
delRows = data[ data['employee'] == '' ].index
data.drop(delRows , inplace=True)
data
输出为:
employee
0 Ali
2 Amed
5 abc